2013-10-31 2 views
17

मैं सोच रहा हूं कि सर्वोत्तम संपीड़न दर (छोटे फाइलसाइज + गुणवत्ता की हानि) को स्वचालित रूप से कैसे निकालना है।PHP: दृश्य गुणवत्ता (स्वचालित रूप से) खोए बिना छवियों को कैसे संकुचित करें?

फिलहाल मैं प्रत्येक .jpg के लिए $quality = 85 के साथ imagejpeg() का उपयोग कर रहा हूं।

पेजस्पेड (क्रोम प्लगइन) कुछ केबी को बचाने के लिए कुछ छवियों की गुणवत्ता को कम करने के लिए सुझाव देता है। कमी का प्रतिशत अलग है।

मैं एक क्रोनबॉज लिखना चाहता हूं जो एक विशिष्ट निर्देशिका को क्रॉल करता है और प्रत्येक छवि को अनुकूलित करता है।

पेजस्पेड या TinyPNG कैसे सर्वोत्तम अनुकूलित गुणवत्ता का पता लगाता है और क्या यह PHP या किसी अन्य सर्वर-भाषा के साथ संभव है?

+0

आप पहले से ही 'imagejpeg() 'कॉल को कैश कर रहे हैं, है ना? –

+0

@ पेक्का: हाँ, मैं करता हूं। मैं छवियों का आकार 100% की गुणवत्ता के साथ बदल दूंगा। Cronjob बाद में इसे अनुकूलित करेगा। 85% गुणवत्ता सिर्फ इसलिए है क्योंकि मेरे पास अभी तक कोई एल्गोरिदम नहीं है। –

उत्तर

27

TinyPNG pngquant का उपयोग करता है।

Pngquant के पास जेपीईजी के समान वांछित गुणवत्ता निर्धारित करने का विकल्प है। आप कुछ ऐसा कर सकते हैं जैसे:

<?php system('pngquant --quality=85 image.png'); ?> 

Pngquant website has example code showing how to use pngquant from PHP


जेपीईजी के लिए आप दोषरहितjpegcrush आवेदन कर सकते हैं।

JpegMini (वाणिज्यिक) और jpeg-archive (मुक्त) हानिपूर्ण हैं और स्वचालित रूप से एक JPEG के लिए एक न्यूनतम अच्छी गुणवत्ता प्राप्त कर सकते हैं कर सकते हैं।

PHP में आप मोटे तौर पर अनुमान लगा सकते हैं कि पुन: संपीड़न के बाद फ़ाइल आकार में कितना परिवर्तन होता है यह देखकर कितना जेपीईजी संपीड़ित किया गया था। जेपीईजी का फ़ाइल आकार समान या उच्च गुणवत्ता पर फिर से दबाया जाएगा, ज्यादा नहीं बदलेगा (लेकिन दृश्य गुणवत्ता खो देगा)।

यदि आप जेपीईजी को दोबारा दबाते हैं और फ़ाइल आकार को कम करते हैं, तो पुनः संकुचित संस्करण रखें। यदि आप फ़ाइल आकार में केवल 10-20% ड्रॉप देखते हैं, तो मूल रखें।

यदि आप स्वयं को संपीड़ित कर रहे हैं, तो MozJPEG का उपयोग करें (यहां एक online version है)।

+0

मैंने jpegcrush की कोशिश की है लेकिन यह प्रभावी नहीं लगता है। यह perl स्क्रिप्ट मुझे फ़ाइल आकार के केवल 10 प्रतिशत को कम करने में मदद करता है। Jpegmini और tinyjpg 70% तक कर सकते हैं। कोई भी मुफ्त बेहतर स्क्रिप्ट यह कर सकता है? – TomSawyer

+0

@TomSawyer jpegcrush हानि रहित है और सर्वोत्तम फाइलसाइज/गुणवत्ता अनुपात प्राप्त करता है। अन्य लोग नहीं हैं, और कम गुणवत्ता पर फ़ाइल को फिर से सहेजने के बराबर हैं, और अधिक विकृतियां जोड़ रहे हैं और संभावित रूप से कम फ़ाइल/गुणवत्ता अनुपात कम कर रहे हैं। यदि कोई टूल आपके जेपीईजी पर 70% बचाता है, तो इसका मतलब है कि आपने फ़ाइल को अपर्याप्त उच्च गुणवत्ता सेटिंग के साथ बनाया है। – Kornel

+0

मुझे ऐसा नहीं लगता है। मैंने jpgmini और tinyjpg द्वारा कई फ़ाइलों को संपीड़ित करने का प्रयास किया है और उनमें से लगभग 50% पट्टे पर संपीड़ित किया जाएगा और गुणवत्ता एक जैसी है या आप बता सकते हैं कि आपकी मानव आंखों से अलग क्या है। उपर्युक्त सेवाओं में से मेरी फाइल 70% आकार कम करती है लेकिन जेपीजीक्रश 10% तक कर सकती है। अंतर – TomSawyer

संबंधित मुद्दे

 संबंधित मुद्दे