هذه الحزمة عبارة عن Laravel 6.0 والإصدارات الأحدث وهي تكامل محدد لمُحسِّن المساحة/الصورة. يمكنه تحسين ملفات 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 تقول؟ لا مشكلة! ما عليك سوى استخدام مُحسِّن المساحة/الصورة الأساسي مباشرةً.
نحن نستثمر الكثير من الموارد في إنشاء أفضل الحزم مفتوحة المصدر في فئتها. يمكنك دعمنا عن طريق شراء أحد منتجاتنا المدفوعة.
نحن نقدر بشدة إرسالك لنا بطاقة بريدية من مسقط رأسك، مع ذكر الحزمة (الحزم) التي تستخدمها. ستجد عنواننا على صفحة الاتصال لدينا. ننشر جميع البطاقات البريدية المستلمة على جدار البطاقات البريدية الافتراضية لدينا.
يمكنك تثبيت الحزمة عبر الملحن:
composer require spatie/laravel-image-optimizer
ستقوم الحزمة بتسجيل نفسها تلقائيًا.
تستخدم الحزمة مجموعة من الثنائيات لتحسين الصور. للتعرف على كيفية تثبيتها، توجه إلى قسم أدوات التحسين في الملف التمهيدي لحزمة محسّن الصور الأساسية. يحتوي هذا الملف التمهيدي أيضًا على معلومات حول ما ستفعله هذه الأدوات بصورك.
تأتي الحزمة مع بعض الإعدادات الافتراضية المعقولة لتحسين الصور. يمكنك تعديل هذا التكوين عن طريق نشر ملف التكوين.
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 kernel.
// 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 ' );
});
لمعرفة كيفية إنشاء المُحسِّن الخاص بك، اقرأ قسم "كتابة المُحسِّنات المخصصة" في الملف التمهيدي لحزمة مُحسِّن المساحة/الصورة الأساسية.
يمكنك إضافة اسم الفئة المؤهل بالكامل للمُحسِّن الخاص بك كمفتاح في مصفوفة optimizers
في ملف التكوين.
فيما يلي بعض أمثلة التحويلات التي أجراها المُحسِّن.
الرجاء مراجعة سجل التغيير لمزيد من المعلومات عما تغير مؤخرًا.
composer test
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا وجدت خطأً يتعلق بالأمان، فيرجى إرسال بريد إلكتروني إلى العنوان [email protected] بدلاً من استخدام أداة تعقب المشكلات.
أنت حر في استخدام هذه الحزمة (وهي مرخصة من معهد ماساتشوستس للتكنولوجيا)، ولكن إذا وصلت إلى بيئة الإنتاج الخاصة بك، فإننا نقدر بشدة إرسالك لنا بطاقة بريدية من مسقط رأسك، مع ذكر الحزمة (الحزم) التي تستخدمها.
عنواننا هو: سباتي، كرويكسترات 22، 2018 أنتويرب، بلجيكا.
ننشر جميع البطاقات البريدية المستلمة على موقع شركتنا.
فكرة البرنامج الوسيط الذي يعمل على تحسين جميع الملفات في الطلب مأخوذة من محسن/laravel-image-optimizer.
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.