Pierre Joye hat die Diskussion über einen RFC für ext/gd 2.4 (zielend auf PHP 8.6) eingeleitet und schlägt eine umfassende Modernisierung der Image-Extension vor, während vollständige Abwärtskompatibilität gewahrt bleibt.

Der Vorschlag behandelt drei Hauptbereiche:

Codec-Synchronisierung und Erweiterung. Die gebündelte libgd ist erheblich vom Upstream abgewichen. Der RFC bringt sie wieder in Einklang, indem jeder Codec gegen sein Upstream-Compliance-Corpus geprüft wird, wobei Farbabgleich-Probleme und FreeType-Grenzrahmen-/Baseline-Fehler für abgewinkelte Texte behoben werden. Neue unterstützte Codecs: QOI, JPEG XL und UltraHDR. Bestehende Codecs erhalten fehlende Funktionalität: GIF-Animation Lesen/Schreiben, mehrseitiges TIFF, vollständige WebP-Animation, PNG-Optionen, JPEG-Lese-/Schreib-Optionen und Metadaten-Lese-/Schreib-Zugriff (EXIF, XMP, ICC, IPTC). Ein separater libgd-Synchronisierungs-PR (php/php-src#22532) mit den meisten Codec-Updates ist bereits in php-src gemerged.

Objektorientierte API. Eine neue Gd\*-OOP-Oberfläche erweitert GdImage um Methoden (scale(), rotate(), transform(), composeFrom(), saveTo() etc.), während alle existierenden prozeduralen Funktionen ihre Signaturen unverändert beibehalten. Legacy-Code funktioniert frei neben neuen Methoden, da beide auf dem gleichen GdImage-Objekt operieren. Jeder Codec folgt einem einheitlichen Muster: Codec::fromFile/fromString/fromStream und toFile/toString/toStream Methoden, unveränderliche Info-Objekte und ReadOptions/WriteOptions Wert-Objekte für zukünftige Erweiterbarkeit ohne Breaking Changes. Animations- und mehrseitige Formate erhalten Streaming-Reader/Writer-Klassen statt alles in den Speicher zu laden.

2D-Vektor- und Canvas-Layer. Aufbauend auf FreeType's Rasterizer bietet dieser Layer Verläufe, den vollständigen Cairo-Compositing-Operator-Satz (mit korrektem unbegrenzt-Operator und vorvervielfachten Alpha-Semantiken) sowie Save/Restore-State-Stacks. Er zeichnet direkt in bestehende Truecolor-GdImage-Buffer ohne Kopieren, ermöglicht Vermischung mit Legacy-Draw-Aufrufen auf dem gleichen Image.

Der RFC sieht das einheitliche Façade-Muster und Wert-Objekt-Design als Grundlage für zukünftige Roadmap-Punkte: geplante interne Bildformate für PHP 2.5/3.x (echtes 32-Bit-ARGB, Floating-Point-HDR-Buffer) passen sich die gleiche Schnittstelle ein, anstatt parallele APIs zu erzwingen. Der flüssige, verkettbare Methoden-Stil ist so gestaltet, dass zukünftige Streaming-/Pipeline-Modi eine einzelne Einstiegsmethode die gleiche Kette speisen können, nicht eine separate API.

Die Implementierung ist nahezu abgeschlossen unter https://github.com/pierrejoye/php-src-syncgd. Joye plant, eine Quantisierungsmethode zur Modusauswahl (nnquant, legacy) hinzuzufügen und wird einen formalen PR vor Diskussionsende erstellen. Die Diskussionsfrist läuft 14 Tage bis 2026-08-01.