প্রকল্প সম্পর্কে

Spatie-এর image-optimizer একটি PHP লাইব্রেরি যা কনফিগারযোগ্য বাহ্যিক অপ্টিমাইজেশন বাইনারিগুলির একটি চেইনের মাধ্যমে ছবি ফাইলগুলিকে সংকুচিত করে। সমর্থিত ফরম্যাটগুলি হল PNG, JPG, WEBP, AVIF, SVG এবং GIF। প্রদত্ত পাথের ছবিটি একটি অপ্টিমাইজড সংস্করণ দ্বারা প্রতিস্থাপিত হয়, অথবা একটি অপ্টিমাইজড কপি আলাদা আউটপুট পাথে লেখা যেতে পারে। ইনস্টলেশন Composer-এর মাধ্যমে (`composer require spatie/image-optimizer`)। প্যাকেজটি সিস্টেমে কোন অপ্টিমাইজেশন বাইনারি উপস্থিত রয়েছে তা সনাক্ত করে এবং সেগুলি স্বয়ংক্রিয়ভাবে ব্যবহার করে। নথিভুক্ত টুলগুলির মধ্যে রয়েছে JpegOptim, Optipng, Pngquant 2, SVGO 1, Gifsicle, cwebp এবং avifenc, সাথে Ubuntu/Debian, macOS (Homebrew) এবং Fedora/RHEL/CentOS-এর জন্য ইনস্টল নির্দেশাবলী। প্রতি-ফরম্যাট আচরণ নথিভুক্ত: JPG-গুলি JpegOptim-এর মাধ্যমে কোয়ালিটি 85, মেটাডেটা স্ট্রিপিং এবং প্রগ্রেসিভ এনকোডিং সহ যায়; PNG-গুলি Pngquant 2 এবং তারপর Optipng-এর মাধ্যমে; SVG-গুলি cleanupIDs এবং removeViewBox প্লাগইন বাদে ডিফল্ট ব্যবহার করে SVGO দিয়ে মিনিফাই করা হয়; GIF-গুলি অপ্টিমাইজেশন লেভেল 3-এ Gifsicle ব্যবহার করে; WEBP-গুলি উচ্চ-প্রচেষ্টা সেটিংস সহ cwebp ব্যবহার করে; AVIF-গুলি ধ্রুবক-গুণমান এবং SSIM টিউনিং বিকল্প সহ avifenc ব্যবহার করে। README নোট করে যে SVGO কিছু SVG ভাঙতে পারে। ব্যবহার `OptimizerChainFactory::create()` এবং `optimize()`-কে কেন্দ্র করে। `setTimeout()` দিয়ে প্রতি অপ্টিমাইজারের জন্য একটি টাইমআউট সেট করা যেতে পারে। ত্রুটি পরিচালনা কনফিগারযোগ্য: ডিফল্টরূপে ব্যর্থতা লগ করা হয় এবং চেইন চলতে থাকে, যখন `throws()` পুনরায় নিক্ষেপ করে এবং বাতিল করে, এবং একটি কলযোগ্য ব্যতিক্রম, অপ্টিমাইজার এবং ছবি পরীক্ষা করে চালিয়ে যাওয়ার সিদ্ধান্ত নিতে পারে। কাস্টম চেইন তাদের নিজস্ব বিকল্প সহ অপ্টিমাইজার ইনস্ট্যান্স যোগ করে তৈরি করা যেতে পারে, এবং কাস্টম অপ্টিমাইজাররা `Optimizer` ইন্টারফেস প্রয়োগ করতে পারে বা বাইনারি ছাড়া ক্ষেত্রে `BaseSelfHandlingOptimizer` প্রসারিত করতে পারে, যেমন একটি বাহ্যিক API কল করা। কোন অপ্টিমাইজার এবং কমান্ড চলে এবং তাদের আউটপুট রেকর্ড করতে একটি PSR-3 লগার সংযুক্ত করা যেতে পারে। README-তে JPG, WEBP, AVIF, PNG এবং SVG-এর জন্য ফাইল-আকার হ্রাস এবং DSSIM মান সহ উদাহরণ রূপান্তর অন্তর্ভুক্ত রয়েছে। এটি Laravel, WordPress এবং SilverStripe ইন্টিগ্রেশনগুলিকেও নির্দেশ করে। প্রকল্পটি MIT-লাইসেন্সপ্রাপ্ত এবং Spatie দ্বারা রক্ষণাবেক্ষণ করা হয়।