Dieses Paket ist die für Laravel 6.0 und höher spezifische Integration von Spatie/Image-Optimizer. Es kann PNGs, JPGs, SVGs und GIFs optimieren, indem es sie durch eine Kette verschiedener Bildoptimierungstools laufen lässt. Das Paket erkennt automatisch, welche Optimierungsbinärdateien auf Ihrem System installiert sind und verwendet diese.
So können Sie es verwenden:
use ImageOptimizer ;
// the image will be replaced with an optimized version which should be smaller
ImageOptimizer:: optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
ImageOptimizer:: optimize ( $ pathToImage , $ pathToOptimizedImage );
Sie mögen keine Fassaden, sagen Sie? Kein Problem! Lösen Sie einfach eine konfigurierte Instanz von SpatieImageOptimizerOptimizerChain
aus dem Container auf:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Das Paket enthält außerdem eine Middleware zur automatischen Optimierung aller Bilder in einer Anfrage.
Benutzen Sie Laravel nicht, sagen Sie? Kein Problem! Verwenden Sie einfach direkt den zugrunde liegenden Spatie/Image-Optimizer.
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Sie können das Paket über Composer installieren:
composer require spatie/laravel-image-optimizer
Das Paket registriert sich automatisch.
Das Paket verwendet eine Reihe von Binärdateien, um Bilder zu optimieren. Um zu erfahren, welche davon installiert werden, gehen Sie zum Abschnitt „Optimierungstools“ in der Readme-Datei des zugrunde liegenden Image-Optimizer-Pakets. Diese Readme-Datei enthält auch Informationen darüber, was diese Tools mit Ihren Bildern tun.
Das Paket enthält einige sinnvolle Standardeinstellungen zur Optimierung von Bildern. Sie können diese Konfiguration ändern, indem Sie die Konfigurationsdatei veröffentlichen.
php artisan vendor:publish --provider= " SpatieLaravelImageOptimizerImageOptimizerServiceProvider "
Dies ist der Inhalt der config/image-optimizer
Datei, die veröffentlicht wird:
use Spatie ImageOptimizer Optimizers Svgo ;
use Spatie ImageOptimizer Optimizers Optipng ;
use Spatie ImageOptimizer Optimizers Gifsicle ;
use Spatie ImageOptimizer Optimizers Pngquant ;
use Spatie ImageOptimizer Optimizers Jpegoptim ;
use Spatie ImageOptimizer Optimizers Cwebp ;
return [
/**
* When calling `optimize` the package will automatically determine which optimizers
* should run for the given image.
*/
' optimizers ' => [
Jpegoptim::class => [
' -m85 ' , // set maximum quality to 85 %
' --strip-all ' , // this strips out all text information such as comments and EXIF data
' --all-progressive ' // this will make sure the resulting image is a progressive one
],
Pngquant::class => [
' --force ' // required parameter for this package
],
Optipng::class => [
' -i0 ' , // this will result in a non-interlaced , progressive scanned image
' -o2 ' , // this set the optimization level to two ( multiple IDAT compression trials )
' -quiet ' // required parameter for this package
],
Svgo::class => [
' --disable=cleanupIDs ' // disabling because it is known to cause trouble
],
Gifsicle::class => [
' -b ' , // required parameter for this package
' -O3 ' // this produces the slowest but best results
],
Cwebp::class => [
' -m 6 ' , // for the slowest compression method in order to get the best compression .
' -pass 10 ' , // for maximizing the amount of analysis pass .
' -mt ' , // multithreading for some speed improvements .
' -q 90 ' , //quality factor that brings the least noticeable changes .
],
],
/**
* The maximum time in seconds each optimizer is allowed to run separately.
*/
' timeout ' => 60 ,
/**
* If set to `true` all output of the optimizer binaries will be appended to the default log.
* You can also set this to a class that implements `PsrLogLoggerInterface`.
*/
' log_optimizer_activity ' => false ,
];
Wenn Sie Bilder, die in Ihre Anwendung hochgeladen werden, automatisch optimieren möchten, fügen Sie die SpatieLaravelImageOptimizerMiddlewaresOptimizeImages::class
im http-Kernel hinzu.
// app/Http/Kernel.php
protected $ middlewareAliases = [
...
' optimizeImages ' => Spatie LaravelImageOptimizer Middlewares OptimizeImages::class,
];
Sie können eine konfigurierte Instanz von SpatieImageOptimizerOptimizerChain
aus dem Container auflösen:
// the image will be replaced with an optimized version which should be smaller
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage , $ pathToOptimizedImage );
use ImageOptimizer ;
// the image will be replaced with an optimized version which should be smaller
ImageOptimizer:: optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
ImageOptimizer:: optimize ( $ pathToImage , $ pathToOptimizedImage );
Sie mögen keine Fassaden, sagen Sie? Kein Problem! Lösen Sie einfach eine konfigurierte Instanz von SpatieImageOptimizerOptimizerChain
aus dem Container auf:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Alle Bilder, die in Anfragen an Routen gesendet werden, die die optimizeImages
“-Middleware verwenden, werden automatisch optimiert.
Route:: middleware ( ' optimizeImages ' )-> group ( function () {
// all images will be optimized automatically
Route:: post ( ' upload-images ' , ' UploadController@index ' );
});
Um zu erfahren, wie Sie Ihren eigenen Optimierer erstellen, lesen Sie den Abschnitt „Benutzerdefinierte Optimierer schreiben“ in der Readme-Datei des zugrunde liegenden Pakets spatie/image-optimizer.
Sie können den vollständig qualifizierten Klassennamen Ihres Optimierers als Schlüssel zum optimizers
Array in der Konfigurationsdatei hinzufügen.
Hier sind einige Beispielkonvertierungen, die vom Optimierungsprogramm durchgeführt wurden.
Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
composer test
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Es steht Ihnen frei, dieses Paket zu verwenden (es ist MIT-lizenziert), aber wenn es in Ihre Produktionsumgebung gelangt, würden wir uns sehr freuen, wenn Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden.
Unsere Adresse lautet: Spatie, Kruikstraat 22, 2018 Antwerpen, Belgien.
Wir veröffentlichen alle erhaltenen Postkarten auf unserer Firmenwebsite.
Die Idee einer Middleware, die alle Dateien in einer Anfrage optimiert, stammt von „approached/laravel-image-optimizer“.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.