You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Die Architektur ist jetzt bewusst getrennt: Der Negotiator verwendet fuer AVIF/WebP automatisch libvips > Imagick > GD, waehrend der Effekt srgb_preprocess fuer ICC-zu-sRGB-Konvertierungen wieder ausschliesslich auf Imagick setzt.
README auf den tatsaechlichen Stand gebracht: libvips wird nur fuer den Negotiator beschrieben, nicht mehr fuer den ICC-Fix.
Fixed
Dokumentation und Changelog korrigiert: Der vorherige Eintrag zu 6.1.3 suggerierte faelschlich einen aktiven vips-basierten ICC-Fix-Pfad. Tatsaechlich bleibt der farbkritische ICC-Workflow wieder auf dem bewaehrten Imagick-Pfad.
[6.1.3] - 2026-05-04
Added
libvips-Support: Wenn die PHP-Extension vips installiert ist, wird sie automatisch bevorzugt eingesetzt (Priorität: vips › imagick › GD). libvips ist 3–8× schneller als Imagick und benötigt rund 10× weniger Arbeitsspeicher, da es im Streaming-Verfahren arbeitet statt das gesamte Bild in den RAM zu laden.
Helper::vipsPossible(): Erkennt ob die vips-Extension verfügbar ist.
Helper::vipsConvert(): Konvertiert einen Image-Blob via libvips zu WebP oder AVIF.
Helper::getForceImagick(): Extrahiert die force_imagick-Config in eine eigene Methode.
Setup-Seite zeigt libvips-Status und -Version an.
Hinweis in der Setup-Übersicht wenn libvips aktiv ist.
[6.1.2] - 2026-05-04
Performance
Konfigurationswerte (webp_quality, avif_quality, preferred_format, ua_fallback, disable_avif) werden jetzt per Request in statischen Eigenschaften gecacht – rex_config::get() wird nicht mehr bei jedem Effekt-Aufruf wiederholt aufgerufen.
gd_info() wird nur noch einmal pro Request ausgeführt (gecacht in $gdInfoCache).
webpPossible() und avifPossible() werden pro Request gecacht.
Format-Auflösung (Accept-Header + UA-Parsing) findet jetzt nur noch einmal statt: boot.php und rex_effect_negotiator teilen sich das Ergebnis via Helper::getRequestOutputFormat().
[6.1.1] - 2026-05-04
Fixed
Imagick-Speicherleck behoben: Imagick::destroy() wird nun nach jeder Konvertierung in imagickConvert() und im srgb_preprocess-Effekt explizit aufgerufen, da Imagick nativen C-Heap-Speicher hält, den der PHP-Garbage-Collector nicht automatisch freigibt.
getImagickFormats() cacht das Ergebnis jetzt prozessweit in $imagickFormatsCache, sodass pro Request nur noch eine einzige Imagick-Instanz erzeugt wird (statt einer pro webpPossible()/avifPossible()-Aufruf).