public function render()
{
$src = $this->viewHelperVariableContainer->get(self::SCOPE, self::SCOPE_VARIABLE_SRC);
if ('BE' === TYPO3_MODE) {
$tsfeBackup = FrontendSimulationUtility::simulateFrontendEnvironment();
}
$setup = ['width' => $this->arguments['width'], 'height' => $this->arguments['height'], 'minW' => $this->arguments['minW'], 'minH' => $this->arguments['minH'], 'maxW' => $this->arguments['maxW'], 'maxH' => $this->arguments['maxH']];
$quality = $this->arguments['quality'];
$format = $this->arguments['format'];
if (false === empty($format)) {
$setup['ext'] = $format;
}
if (0 < intval($quality)) {
$quality = MathUtility::forceIntegerInRange($quality, 10, 100, 75);
$setup['params'] .= ' -quality ' . $quality;
}
if ('BE' === TYPO3_MODE && '../' === substr($src, 0, 3)) {
$src = substr($src, 3);
}
$result = $this->contentObject->getImgResource($src, $setup);
if ('BE' === TYPO3_MODE) {
FrontendSimulationUtility::resetFrontendEnvironment($tsfeBackup);
}
$src = $this->preprocessSourceUri(rawurldecode($result[3]));
if (null === $this->arguments['media']) {
$this->viewHelperVariableContainer->addOrUpdate(self::SCOPE, self::SCOPE_VARIABLE_DEFAULT_SOURCE, $src);
} else {
$this->tag->addAttribute('media', $this->arguments['media']);
}
$this->tag->addAttribute('srcset', $src);
return $this->tag->render();
}