Skip to content

6.1.4]

Choose a tag to compare

@skerbis skerbis released this 04 May 19:38
· 9 commits to main since this release

[6.1.4] - 2026-05-04

Changed

  • 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).