แพ็คเกจนี้คือ Laravel 6.0 และสูงกว่าการบูรณาการเฉพาะของ spatie/image-optimizer สามารถเพิ่มประสิทธิภาพ PNG, JPG, SVG และ GIF ได้โดยการรันผ่านเครื่องมือเพิ่มประสิทธิภาพภาพต่างๆ แพ็คเกจจะตรวจจับไบนารีการปรับให้เหมาะสมที่ติดตั้งบนระบบของคุณโดยอัตโนมัติและใช้งาน
นี่คือวิธีการใช้งาน:
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 );
คุณไม่ชอบอาคารที่คุณพูดเหรอ? ไม่มีปัญหา! เพียงแก้ไขอินสแตนซ์ที่กำหนดค่าของ SpatieImageOptimizerOptimizerChain
ออกจากคอนเทนเนอร์:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
แพคเกจนี้ยังมีมิดเดิลแวร์เพื่อปรับภาพทั้งหมดในคำขอให้เหมาะสมโดยอัตโนมัติ
อย่าใช้ Laravel เหรอ? ไม่มีปัญหา! เพียงใช้ spatie/image-optimizer พื้นฐานโดยตรง
เราลงทุนทรัพยากรจำนวนมากเพื่อสร้างแพ็คเกจโอเพ่นซอร์สที่ดีที่สุดในระดับเดียวกัน คุณสามารถสนับสนุนเราได้โดยการซื้อหนึ่งในผลิตภัณฑ์ที่ต้องชำระเงินของเรา
เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณถึงเรา โดยระบุว่าคุณใช้แพ็คเกจใดของเรา คุณจะพบที่อยู่ของเราในหน้าติดต่อของเรา เราเผยแพร่โปสการ์ดที่ได้รับทั้งหมดบนวอลล์โปสการ์ดเสมือนของเรา
คุณสามารถติดตั้งแพ็คเกจผ่านทางผู้แต่ง:
composer require spatie/laravel-image-optimizer
แพ็คเกจจะลงทะเบียนเองโดยอัตโนมัติ
แพ็คเกจใช้ไบนารีจำนวนมากเพื่อปรับภาพให้เหมาะสม หากต้องการทราบว่าจะติดตั้งอย่างไร ให้ไปที่ส่วนเครื่องมือเพิ่มประสิทธิภาพใน readme ของแพ็คเกจเครื่องมือเพิ่มประสิทธิภาพรูปภาพพื้นฐาน readme นั้นยังมีข้อมูลเกี่ยวกับว่าเครื่องมือเหล่านี้จะทำอะไรกับรูปภาพของคุณ
แพ็คเกจนี้มาพร้อมกับค่าเริ่มต้นที่เหมาะสมเพื่อปรับภาพให้เหมาะสม คุณสามารถแก้ไขการกำหนดค่านั้นได้โดยการเผยแพร่ไฟล์กำหนดค่า
php artisan vendor:publish --provider= " SpatieLaravelImageOptimizerImageOptimizerServiceProvider "
นี่คือเนื้อหาของไฟล์ config/image-optimizer
ที่จะเผยแพร่:
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 ,
];
หากคุณต้องการปรับภาพที่อัพโหลดไปยังแอปพลิเคชันของคุณให้เหมาะสมโดยอัตโนมัติ ให้เพิ่มคลาส SpatieLaravelImageOptimizerMiddlewaresOptimizeImages::class
ในเคอร์เนล http
// app/Http/Kernel.php
protected $ middlewareAliases = [
...
' optimizeImages ' => Spatie LaravelImageOptimizer Middlewares OptimizeImages::class,
];
คุณสามารถแก้ไขอินสแตนซ์ที่กำหนดค่าของ SpatieImageOptimizerOptimizerChain
ออกจากคอนเทนเนอร์ได้:
// 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 );
คุณไม่ชอบอาคารที่คุณพูดเหรอ? ไม่มีปัญหา! เพียงแก้ไขอินสแตนซ์ที่กำหนดค่าของ SpatieImageOptimizerOptimizerChain
ออกจากคอนเทนเนอร์:
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
รูปภาพทั้งหมดที่ร้องขอไปยังเส้นทางที่ใช้ optimizeImages
- มิดเดิลแวร์จะถูกปรับให้เหมาะสมโดยอัตโนมัติ
Route:: middleware ( ' optimizeImages ' )-> group ( function () {
// all images will be optimized automatically
Route:: post ( ' upload-images ' , ' UploadController@index ' );
});
หากต้องการเรียนรู้วิธีสร้างเครื่องมือเพิ่มประสิทธิภาพของคุณเอง โปรดอ่านส่วน "การเขียนเครื่องมือเพิ่มประสิทธิภาพที่กำหนดเอง" ใน readme ของแพ็คเกจ spatie/image-optimizer พื้นฐาน
คุณสามารถเพิ่มชื่อคลาสแบบเต็มของเครื่องมือเพิ่มประสิทธิภาพของคุณเป็นคีย์ในอาร์เรย์ optimizers
ในไฟล์กำหนดค่าได้
ต่อไปนี้คือตัวอย่าง Conversion บางส่วนที่ทำโดยเครื่องมือเพิ่มประสิทธิภาพ
โปรดดู CHANGELOG สำหรับข้อมูลเพิ่มเติมว่ามีอะไรเปลี่ยนแปลงเมื่อเร็วๆ นี้
composer test
โปรดดูการมีส่วนร่วมเพื่อดูรายละเอียด
หากคุณพบข้อบกพร่องเกี่ยวกับการรักษาความปลอดภัย โปรดส่งอีเมลไปที่ [email protected] แทนการใช้ตัวติดตามปัญหา
คุณใช้แพ็คเกจนี้ได้ฟรี (ได้รับใบอนุญาตจาก MIT) แต่ถ้าทำให้เหมาะกับสภาพแวดล้อมการใช้งานจริงของคุณ เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณมาให้เรา โดยระบุแพ็คเกจที่คุณใช้อยู่
ที่อยู่ของเราคือ: Spatie, Kruikstraat 22, 2018 แอนต์เวิร์ป, เบลเยียม
เราเผยแพร่ไปรษณียบัตรที่ได้รับทั้งหมดบนเว็บไซต์ของบริษัทของเรา
แนวคิดของมิดเดิลแวร์ที่ปรับไฟล์ทั้งหมดในคำขอให้เหมาะสมนั้นนำมาจาก approached/laravel-image-optimizer
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม