इस प्रोजेक्ट के बारे में
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 फ़ाइलों को SVGO द्वारा डिफ़ॉल्ट सेटिंग्स से cleanupIDs और removeViewBox प्लगइन हटाकर मिनिफाई किया जाता है; GIF फ़ाइलें Gifsicle का उपयोग ऑप्टिमाइज़ेशन स्तर 3 पर करती हैं; WEBP फ़ाइलें cwebp का उपयोग उच्च-दक्षता सेटिंग्स के साथ करती हैं; AVIF फ़ाइलें avifenc का उपयोग constant-quality और SSIM ट्यूनिंग विकल्पों के साथ करती हैं। 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 द्वारा अनुरक्षित है।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.