TYPO3 Logo
TYPO3 Core Changelog
Options
Give feedback View source How to edit Edit on GitHub Full documentation (single file)

TYPO3 Core Changelog

  • ChangeLog v14
    • 14.0 Changes
    • 14.x Changes by type
  • ChangeLog v13
    • 13.4.x Changes
    • 13.4 Changes
    • 13.3 Changes
    • 13.2 Changes
    • 13.1 Changes
    • 13.0 Changes
    • 13.x Changes by type
  • ChangeLog v12
    • 12.4.x Changes
    • 12.4 Changes
    • 12.3 Changes
    • 12.2 Changes
    • 12.1 Changes
    • 12.0 Changes
    • 12.x Changes by type
  • ChangeLog v11
    • 11.5.x Changes
    • 11.5 Changes
    • 11.4 Changes
    • 11.3 Changes
    • 11.2 Changes
    • 11.1 Changes
    • 11.0 Changes
    • 11.x Changes by type
  • ChangeLog v10
    • 10.4.x Changes
    • 10.4 Changes
    • 10.3 Changes
    • 10.2 Changes
    • 10.1 Changes
    • 10.0 Changes
    • 10.x Changes by type
  • ChangeLog v9
    • 9.5.x Changes
    • 9.5 Changes
    • 9.4 Changes
    • 9.3 Changes
    • 9.2 Changes
    • 9.1 Changes
    • 9.0 Changes
    • 9.x Changes by type
  • ChangeLog v8
    • 8.7.x Changes
    • 8.7 Changes
    • 8.6 Changes
    • 8.5 Changes
    • 8.4 Changes
    • 8.3 Changes
    • 8.2 Changes
    • 8.1 Changes
    • 8.0 Changes
    • 8.x Changes by type
  • ChangeLog v7
    • 7.6.x Changes
    • 7.6 Changes
    • 7.5 Changes
    • 7.4 Changes
    • 7.3 Changes
    • 7.2 Changes
    • 7.1 Changes
    • 7.0 Changes
    • 7.x Changes by type
  • Documenting Changes
  • Sitemap
  1. TYPO3 Core Changelog
  2. ChangeLog v13
  3. 13.0 Changes
  4. Breaking: #101955 - Removed public methods related to Image Generation
Give feedback Edit on GitHub

Breaking: #101955 - Removed public methods related to Image Generation

See forge#101955

Description

For historical reasons, there is a PHP API class \TYPO3\CMS\Core\Imaging\GraphicalFunctions which deals with general imaging functionality such as converting, scaling or cropping images - mainly with ImageMagick / GraphicsMagick as a basis. In addition, the PHP class \TYPO3\CMS\Frontend\Imaging\GifBuilder which works with instructions originally built for use with TypoScript and image manipulation such as masking, combining text with images based mainly on the PHP extension GDLib.

Even though TYPO3 works best having both GDLib and ImageMagick installed and properly configured, the inter-dependency within the TYPO3 Core API when to use what class has always been unclear - mostly because this functionality has not been cleaned up in the past 20 years.

For this reason, GifBuilder now contains all functionality related to GDLib, and all related methods from GraphicalFunctions have been removed. GraphicalFunctions thus is only contains ImageMagick/GraphicsMagick functionality.

In addition, GifBuilder and GraphicalFunctions are now two separate classes without inheritance, but utilizes the Composition pattern.

The following public methods from GraphicalFunctions have been removed:

  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->adjust()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->applyImageMagickToPHPGif()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->applyOffset()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->autolevels()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->convertColor()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->copyImageOntoImage()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->crop()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->destroy()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->getTemporaryImageWithText()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->hexColor()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->imageCreateFromFile()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->ImageTTFBBoxWrapper()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->ImageTTFTextWrapper()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->ImageWrite()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->inputLevels()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeBox()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeEffect()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeEllipse()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeEmboss()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeOutline()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeShadow()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->makeText()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->maskImageOntoImage()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->output()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->outputLevels()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->scale()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->splitString()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->unifyColors()
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions::readPngGif()

The following public properties from GraphicalFunctions have been removed:

  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->colMap
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->h
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->map
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->saveAlphaLayer
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->setup
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->truecolorColors
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->w
  • \TYPO3\CMS\Core\Imaging\GraphicalFunctions->workArea

The following public properties in GifBuilder have been removed:

  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->charRangeMap
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->myClassName

The following public properties in GifBuilder are now marked as protected:

  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->charRangeMap
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->combinedFileNames
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->combinedTextStrings
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->data
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->defaultWorkArea
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->objBB
  • \TYPO3\CMS\Frontend\Imaging\GifBuilder->XY

Impact

When using the classes directly in PHP code of extensions, calling any of the methods or accessing / setting the affected properties will result in a PHP error.

Affected installations

TYPO3 installations with custom extensions utilizing the PHP API of these two classes directly.

For any usages of these classes via TypoScript or the File Abstraction Layer API will continue to work and are not affected by this breaking change.

Migration

Use static analysis tools such as PHPStan or Psalm to detect if PHP code of custom extensions is affected, and make use of GifBuilder class instead of GraphicalFunctions when needing GDLib functionality.

  • Previous
  • Next
Reference to the headline

Copy and freely share the link

This link target has no permanent anchor assigned. You can make a pull request on GitHub to suggest an anchor. The link below can be used, but is prone to change if the page gets moved.

Copy this link into your TYPO3 manual.

  • Home
  • Contact
  • Issues
  • Repository

Last rendered: May 07, 2025 12:11

© since 1997 by the TYPO3 contributors
  • Legal Notice
  • Privacy Policy