Ce package est l'intégration spécifique de Laravel 6.0 et versions ultérieures de spatie/image-optimizer. Il peut optimiser les fichiers PNG, JPG, SVG et GIF en les exécutant via une chaîne de divers outils d'optimisation d'image. Le package détectera automatiquement quels binaires d'optimisation sont installés sur votre système et les utilisera.
Voici comment vous pouvez l'utiliser :
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 );
Vous n'aimez pas les façades, dites-vous ? Aucun problème! Résolvez simplement une instance configurée de SpatieImageOptimizerOptimizerChain
hors du conteneur :
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Le package contient également un middleware pour optimiser automatiquement toutes les images d'une requête.
N'utilisez pas Laravel, dites-vous ? Aucun problème! Utilisez simplement le spatie/image-optimizer sous-jacent directement.
Nous investissons beaucoup de ressources dans la création des meilleurs packages open source de leur catégorie. Vous pouvez nous soutenir en achetant l'un de nos produits payants.
Nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant le(s) forfait(s) que vous utilisez. Vous trouverez notre adresse sur notre page contact. Nous publions toutes les cartes postales reçues sur notre mur virtuel de cartes postales.
Vous pouvez installer le package via composer :
composer require spatie/laravel-image-optimizer
Le package s’enregistrera automatiquement.
Le package utilise un tas de binaires pour optimiser les images. Pour savoir lesquels et comment les installer, rendez-vous dans la section des outils d'optimisation dans le fichier Lisez-moi du package d'optimisation d'image sous-jacent. Ce fichier Lisez-moi contient également des informations sur ce que ces outils feront à vos images.
Le package est livré avec des paramètres par défaut raisonnables pour optimiser les images. Vous pouvez modifier cette configuration en publiant le fichier de configuration.
php artisan vendor:publish --provider= " SpatieLaravelImageOptimizerImageOptimizerServiceProvider "
Voici le contenu du fichier config/image-optimizer
qui sera publié :
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 ,
];
Si vous souhaitez optimiser automatiquement les images téléchargées sur votre application, ajoutez la SpatieLaravelImageOptimizerMiddlewaresOptimizeImages::class
dans le noyau http.
// app/Http/Kernel.php
protected $ middlewareAliases = [
...
' optimizeImages ' => Spatie LaravelImageOptimizer Middlewares OptimizeImages::class,
];
Vous pouvez résoudre une instance configurée de SpatieImageOptimizerOptimizerChain
hors du conteneur :
// 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 );
Vous n'aimez pas les façades, dites-vous ? Aucun problème! Résolvez simplement une instance configurée de SpatieImageOptimizerOptimizerChain
hors du conteneur :
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Toutes les images contenues dans les requêtes vers des itinéraires qui utilisent le middleware optimizeImages
seront optimisées automatiquement.
Route:: middleware ( ' optimizeImages ' )-> group ( function () {
// all images will be optimized automatically
Route:: post ( ' upload-images ' , ' UploadController@index ' );
});
Pour savoir comment créer votre propre optimiseur, lisez la section « Écriture d'optimiseurs personnalisés » dans le fichier readme du package spatie/image-optimizer sous-jacent.
Vous pouvez ajouter le nom de classe complet de votre optimiseur en tant que clé dans le tableau optimizers
du fichier de configuration.
Voici quelques exemples de conversions effectuées par l'optimiseur.
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
composer test
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Vous êtes libre d'utiliser ce package (il est sous licence MIT), mais s'il parvient à votre environnement de production, nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant lequel de nos packages vous utilisez.
Notre adresse est : Spatie, Kruikstraat 22, 2018 Anvers, Belgique.
Nous publions toutes les cartes postales reçues sur le site Internet de notre entreprise.
L'idée d'un middleware qui optimise tous les fichiers d'une requête est tirée de Approached/laravel-image-optimizer.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.