diff --git a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php index f96772723ed2477002f2aeb05013f2c1de025e97..2ac17b63b50e8249a6fd88e6f600708e200d08a2 100644 --- a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php +++ b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php @@ -4052,16 +4052,13 @@ class ContentObjectRenderer implements LoggerAwareInterface $imageResource = null; if ($file === 'GIFBUILDER') { $gifCreator = GeneralUtility::makeInstance(GifBuilder::class); + $theImage = ''; if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib']) { $gifCreator->start($fileArray, $this->data); $theImage = $gifCreator->gifBuild(); - if (!empty($theImage)) { - // Use absolute path to retrieve image dimension to mitigate path inconsistency in cli context, - // but use the relative path for further processing. - $imageResource = $gifCreator->getImageDimensions(Environment::getPublicPath() . '/' . $theImage); - $imageResource['origFile'] = $theImage; - } } + $imageResource = $gifCreator->getImageDimensions($theImage); + $imageResource['origFile'] = $theImage; } else { if ($file instanceof File) { $fileObject = $file; diff --git a/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php b/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php index 78ac8522e5ee3c331a0c5081f3fc0e5245716f7a..badd559d9e82eb76f71388b24f839091c6b4c2b0 100644 --- a/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php +++ b/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php @@ -346,12 +346,12 @@ class GifBuilder extends GraphicalFunctions // Relative to Environment::getPublicPath() $gifFileName = $this->fileName('assets/images/'); // File exists - if (!file_exists(Environment::getPublicPath() . '/' . $gifFileName)) { + if (!file_exists($gifFileName)) { // Create temporary directory if not done: GeneralUtility::mkdir_deep(Environment::getPublicPath() . '/typo3temp/assets/images/'); // Create file: $this->make(); - $this->output(Environment::getPublicPath() . '/' . $gifFileName); + $this->output($gifFileName); $this->destroy(); } return $gifFileName; diff --git a/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php b/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php index 2a5bdf344256b2670910c6cad780c8fac8e21928..df2e467f1ce00df662400215636d1c6768e20798 100644 --- a/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php @@ -30,44 +30,6 @@ use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase; */ class GifBuilderTest extends FunctionalTestCase { - /** - * Sets up Environment to simulate Composer mode and a cli request - */ - protected function simulateCliRequestInComposerMode(): void - { - Environment::initialize( - Environment::getContext(), - true, - true, - Environment::getProjectPath(), - Environment::getPublicPath() . '/public', - Environment::getVarPath(), - Environment::getConfigPath(), - Environment::getCurrentScript(), - Environment::isWindows() ? 'WINDOWS' : 'UNIX' - ); - } - - /** - * @test - */ - public function buildImageInCommandLineInterfaceAndComposerContext(): void - { - $this->simulateCliRequestInComposerMode(); - - $fileArray = [ - 'XY' => '10,10', - 'format' => 'jpg', - ]; - - $gifBuilder = new GifBuilder(); - $gifBuilder->start($fileArray, []); - $gifFileName = $gifBuilder->gifBuild(); - - self::assertFileDoesNotExist(Environment::getProjectPath() . '/' . $gifFileName); - self::assertFileExists(Environment::getPublicPath() . '/' . $gifFileName); - } - /** * Check hashes of Images overlayed with other images are idempotent * @@ -97,10 +59,8 @@ class GifBuilderTest extends FunctionalTestCase 'quality' => 88, '10' => 'IMAGE', '10.' => [ + 'file.width' => 300, 'file' => $file, - 'file.' => [ - 'width' => 300, - ], ], '30' => 'IMAGE', '30.' => [