Paket ini adalah Laravel 6.0 dan integrasi khusus spatie/image-optimizer. Itu dapat mengoptimalkan PNG, JPG, SVG, dan GIF dengan menjalankannya melalui rangkaian berbagai alat pengoptimalan gambar. Paket ini akan secara otomatis mendeteksi biner pengoptimalan mana yang diinstal pada sistem Anda dan menggunakannya.
Inilah cara Anda dapat menggunakannya:
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 );
Anda tidak suka fasad, kata Anda? Tidak masalah! Selesaikan saja instance SpatieImageOptimizerOptimizerChain
yang dikonfigurasi dari penampung:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Paket ini juga berisi middleware untuk secara otomatis mengoptimalkan semua gambar dalam permintaan.
Jangan gunakan Laravel, katamu? Tidak masalah! Cukup gunakan spatie/pengoptimal gambar yang mendasarinya secara langsung.
Kami menginvestasikan banyak sumber daya untuk menciptakan paket sumber terbuka terbaik di kelasnya. Anda dapat mendukung kami dengan membeli salah satu produk berbayar kami.
Kami sangat menghargai Anda mengirimi kami kartu pos dari kota asal Anda, yang menyebutkan paket kami mana yang Anda gunakan. Anda akan menemukan alamat kami di halaman kontak kami. Kami mempublikasikan semua kartu pos yang diterima di dinding kartu pos virtual kami.
Anda dapat menginstal paket melalui composer:
composer require spatie/laravel-image-optimizer
Paket akan otomatis mendaftar sendiri.
Paket ini menggunakan sekumpulan biner untuk mengoptimalkan gambar. Untuk mempelajari cara menginstalnya, buka bagian alat pengoptimalan di readme paket pengoptimal gambar yang mendasarinya. Readme itu juga berisi informasi tentang apa yang akan dilakukan alat ini pada gambar Anda.
Paket ini dilengkapi dengan beberapa default yang masuk akal untuk mengoptimalkan gambar. Anda dapat mengubah konfigurasi tersebut dengan menerbitkan file konfigurasi.
php artisan vendor:publish --provider= " SpatieLaravelImageOptimizerImageOptimizerServiceProvider "
Berikut isi file config/image-optimizer
yang akan dipublish:
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 ,
];
Jika Anda ingin secara otomatis mengoptimalkan gambar yang diunggah ke aplikasi Anda, tambahkan SpatieLaravelImageOptimizerMiddlewaresOptimizeImages::class
di kernel http.
// app/Http/Kernel.php
protected $ middlewareAliases = [
...
' optimizeImages ' => Spatie LaravelImageOptimizer Middlewares OptimizeImages::class,
];
Anda dapat menyelesaikan instance SpatieImageOptimizerOptimizerChain
yang dikonfigurasi dari penampung:
// 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 );
Anda tidak suka fasad, kata Anda? Tidak masalah! Selesaikan saja instance SpatieImageOptimizerOptimizerChain
yang dikonfigurasi dari penampung:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
Semua gambar yang di request ke rute yang menggunakan optimizeImages
-middleware akan dioptimasi secara otomatis.
Route:: middleware ( ' optimizeImages ' )-> group ( function () {
// all images will be optimized automatically
Route:: post ( ' upload-images ' , ' UploadController@index ' );
});
Untuk mempelajari cara membuat pengoptimal Anda sendiri, baca bagian "Menulis pengoptimal khusus" di readme paket spatie/pengoptimal gambar yang mendasarinya.
Anda dapat menambahkan nama kelas pengoptimal yang sepenuhnya memenuhi syarat sebagai kunci dalam array optimizers
di file konfigurasi.
Berikut beberapa contoh konversi yang dilakukan oleh pengoptimal.
Silakan lihat CHANGELOG untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
composer test
Silakan lihat KONTRIBUSI untuk rinciannya.
Jika Anda menemukan bug terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Anda bebas menggunakan paket ini (berlisensi MIT), namun jika paket ini masuk ke lingkungan produksi Anda, kami sangat menghargai Anda mengirimi kami kartu pos dari kota asal Anda, yang menyebutkan paket kami mana yang Anda gunakan.
Alamat kami adalah: Spatie, Kruikstraat 22, 2018 Antwerp, Belgia.
Kami mempublikasikan semua kartu pos yang diterima di situs web perusahaan kami.
Ide tentang middleware yang mengoptimalkan semua file dalam permintaan diambil dari pendekatan/laravel-image-optimizer.
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.