Eine PHP -Bibliothek zur Codierung von JPEG XL -Bildern. Unterstützt JPEG- und PNG -Eingaben. Sehr viel inspiriert von der exzellenten Webp Convert -Bibliothek.
Es ist als Plug-and-Play-Lösung gedacht, die die häufigsten Anwendungsfälle abdeckt und in einer Vielzahl von PHP-Projekten verwendet werden kann.
proc_open -PHP -Funktion muss aktiviert werden, damit die Bibliothek die CJXL -Binärdatei in der Befehlszeile ausführen kann.vips -PHP -Erweiterung ist installiert und aktiviert. Die VIP -Bildverarbeitungsbibliothek muss mit JXL -Unterstützung kompiliert werdenimagick -PHP -Erweiterung ist installiert und aktiviert. Die ImageMagick -Bibliothek muss mit JXL -Unterstützung zusammengestellt werden composer require joppuyo/jpeg-xl-encode
require __DIR__ . ' /vendor/autoload.php ' ;
$ source = ' /absolute/path/to/source.jpeg ' ;
$ destination = ' /absolute/path/to/destination.jxl ' ;
$ options = [
' encoding ' => ' lossy ' ,
' quality ' => 80 ,
];
try {
NPX JpegXlEncode Encoder:: encode ( $ source , $ destination , $ options );
} catch ( Exception $ exception ) {
error_log ( ' Whoops, something went wrong. ' );
} encoding
Wählt aus, welche Codierung für VARDCT und für modulare lossless lossy zu verwenden ist. lossless lossy
quality
Bildqualität für verlustige Komprimierung. Der Qualitätsbereich geht von 1 bis 100 . Standard ist 85 .
effort
Steuert, wie viel Zeit für die Bildcodierung verwendet wird. Längere Codierungszeit bedeutet kleinere Dateien. Die Reichweite ist von 1 bis 9 , wobei 1 am schnellsten und 9 am langsamsten ist. Standard ist 7 .
progressive
Ermöglicht eine progressive Dekodierung für das Bild. Wenn ein Webbrowser das progressive Rendering unterstützt, wird das Bild wahrnehmend schneller heruntergeladen. Im VARDCT -Modus wirkt sich die progressive Dekodierung nicht auf die Dateigröße aus.
Das Aktivieren der progressiven Dekodierung für modulare Bilder wird nicht empfohlen, da die resultierende Bilddatei erheblich größer wird. Es könnte zu einem späteren Zeitpunkt in einer zukünftigen Version aktiviert werden, wenn es Browser gibt, die das Herunterladen nur einen Teil einer modularen progressiven Datei unterstützen.
Der Standardwert true für Verlust und false für verlustfrei.
Es gibt vier verschiedene Methoden, die Sie verwenden können: CJXL Binary, CJXL System Binary, Imagemagick Extension und VIPS -Erweiterung. Die Bibliothek durchläuft jede der verfügbaren Methoden und versucht sie zu verwenden. Wenn keine der Methoden verfügbar ist, wird eine Ausnahme ausgelöst.
Diese Methode führt die cjxl -Binärin in der Befehlszeile aus. Es ist die kompatibelste Methode und unterstützt die meisten Funktionen. Die Funktion proc_open muss jedoch in der PHP -Installation aktiviert werden, da die Bibliothek die Binärdatei in der Befehlszeile ausführt. Einige Webhosts können diese Funktion aus Sicherheitsgründen deaktivieren.
HINWEIS: Diese Bibliothek wird mit staatlich kompilierter Version des cjxl -Binary für Linux-, MacOS- und Windows -Systeme gebündelt. Die Binärdatei wird mit allen erforderlichen Bibliotheken gebündelt, was bedeutet, dass es nicht in der Box funktioniert, ohne dass zusätzliche Abhängigkeiten installiert werden müssen.
Dies entspricht der vorherigen Methode, führt jedoch den cjxl -Binary aus dem Systempfad aus. Dies bedeutet, dass Sie JPEG XL mit Ihrem Systempaket -Manager wie Homebrew oder Build JPEG XL aus der Quelle installieren und die cjxl -Binärdehnung zu Ihrer Pfadvariablen hinzufügen müssen.
Diese Methode verwendet die ImageMagick -Bibliothek und ihre PHP -Erweiterung Imagick. ImageMagick muss jedoch mit JXL -Delegierter gebaut werden. In der Praxis müssen Sie die Bibliothek Libjxl auf dem Server installieren. Dann müssen Sie Imagemagick aus der Quelle mit der Option erstellen --with-jxl=yes . Zuletzt müssen Sie die Imageick -PHP -Erweiterung installieren. Die ImageMagick -Erweiterung unterstützt zu dieser Zeit keine progressive Codierung. Beispielsweise finden Sie in dieser Dockerfile, um Imagemagick mit JPEG XL -Unterstützung zu kompilieren.
Diese Methode verwendet die VIPS -Bibliothek und ihre PHP -Erweiterung. VIPS muss jedoch mit JXL -Unterstützung gebaut werden. In der Praxis müssen Sie die Bibliothek Libjxl auf dem Server installieren. Dann müssen Sie VIPs aus der Quelle erstellen. Zuletzt müssen Sie die VIP -PHP -Erweiterung installieren. Die VIPS -Erweiterung unterstützt zu diesem Zeitpunkt keine progressive Codierung. Ein Beispiel, wie VIPs mit JPEG XL -Unterstützung kompiliert werden, finden Sie in dieser Dockerfile.
Zusätzlich müssen Sie die VIPS-Erweiterung der jcupitt/vips PHP-Bibliothek in Ihrem Projekt zusätzlich jpeg-xl-encode installieren. Sie können dies mit dem folgenden Befehl verwenden:
composer require jcupitt/vips
MIT.
Detaillierte Lizenzinformationen finden Sie in den einzelnen Datei -Headern und .reuse/dep5 .
Dieses Projekt befindet sich in aktiver Entwicklung und verfügt über eine Reihe von Funktionen, die derzeit in der Entwicklung in der Entwicklung sind.