JPEG अनुकूलन के लिए उपकरण? [बन्द है]


114

क्या आप जेपीईजी को स्वचालित रूप से और दोषरहित रूप से अनुकूलित करने के लिए किसी भी उपकरण (अधिमानतः कमांड-लाइन) के बारे में जानते हैं जिसे मैं अपने बिल्ड पर्यावरण में एकीकृत कर सकता हूं? PNGs के लिए मैं वर्तमान में PNGOUT का उपयोग कर रहा हूं , और यह आम तौर पर लगभग 40% बैंडविड्थ / छवि आकार बचाता है।

बहुत कम से कम, मैं एक उपकरण चाहूंगा जो जेपीजी से मेटाडेटा को हटा सकता है - मैंने एक अजीब मामला देखा जहां मैंने एक तस्वीर से थंबनेल बनाने की कोशिश की, और इसे 34 केबी से छोटा नहीं किया जा सका। अधिक जांच करने के बाद, मैंने पाया कि EXIF ​​डेटा अभी भी छवि का हिस्सा था, और थंबनेल मेटाडेटा को हटाने के बाद 3 kB था।

और इससे आगे - क्या जेपीजी को दोषरहित रूप से अनुकूलित करना संभव है? PNG ऑप्टिमाइज़र विभिन्न संपीड़न रणनीतियों, हफ़मैन एन्कोडिंग के यादृच्छिक आरंभीकरण आदि की कोशिश करता है।

मुझे पता है कि ज्यादातर बचत जेपीईजी गुणवत्ता पैरामीटर से आती है, और यह एक व्यक्तिपरक उपाय है। मैं केवल एक उपकरण की तलाश कर रहा हूं जिसे बिल्ड स्टेप के रूप में चलाया जा सकता है और जो छवियों से कुछ बाइट्स को बिना किसी नुकसान के निचोड़ता है।


आप कह रहे हैं कि EXIF ​​हटाए जाने से पहले एक अनुकूलित JPG में EXIF ​​के लगभग 10KB मूल्य थे?!?!?! मुझे आश्चर्य है कि इसमें क्या है!
3

यह एक डिजिटल कैमरे से पूरा EXIF ​​ब्लॉक था, जिसमें इस तस्वीर (एक्सपोज़र, शटर टाइम, आदि ...) के बारे में हर छोटी-बड़ी डिटेल शामिल है
chris166

@netrox chris166 उन विवरणों में ज्यादा जगह नहीं है, जो बहुत सारी जगह लेता है वह है पूर्वावलोकन (बाइनरी डेटा)।
एरियल

1
दो दिलचस्प तुलना लेख, जो सूची उपयोगिताएँ नीचे सूचीबद्ध हैं: जेपीईजी दोषरहित संपीड़न उपकरण की तुलना, जून 2014 ; JPEG अनुकूलन उपकरण बेंचमार्क, फ़रवरी 2013
dma_k

@ एरियल: आईसीसी प्रोफाइल भी एक बड़ी जगह ले जाती है। मैंने आईसीसी प्रोफ़ाइल बाइनरी डेटा के 500KB से अधिक देखा है।
सौराभाइट्स

जवाबों:


68

मैं दोषरहित संचालन के लिए libjpeg का उपयोग करता हूं। इसमें एक कमांड-लाइन टूल jpegtran होता है, जो आप चाहते हैं। कमांडलाइन विकल्प के साथ -copy noneसभी मेटाडेटा को हटा दिया जाता है, और -optimizeहफ़मैन संपीड़न का दोषरहित अनुकूलन करता है। आप छवियों को प्रगतिशील मोड में भी बदल सकते हैं -progressive, लेकिन इससे संगतता समस्याएं हो सकती हैं (क्या किसी को इसके बारे में अधिक पता है?)


5
वाह, यह आशाजनक लगता है। अगर किसी को दिलचस्पी है, तो विंडोज के लिए डाउनलोड gnuwin32.sourceforge.net/packages/jpeg.htm पर है
chris166

मैं इसके लिए जा रहा हूं। यह प्रगतिशील मोड में 62 kB से 49 kB तक मेरी पृष्ठभूमि छवि को कम करता है। एक और छवि (27 kB) को घटाकर 23 kB कर दिया गया। कि गुणवत्ता में नुकसान के बिना 15-20% बचत है!
क्रिस १६

2
प्रगतिशील मूल रूप से सब कुछ ठीक काम करता है, एकमात्र दोष यह है कि डिकोड करने के लिए अधिक सीपीयू का उपयोग होता है (पदार्थ के लिए पर्याप्त अतिरिक्त नहीं)।
एरियल

1
प्रगतिशील अक्सर 9k से कम फ़ाइलों के लिए आधारभूत से बड़ा हो सकता है
कॉलिन एंडरसन

3
प्रगतिशील को डिकोड करने के लिए बहुत अधिक मेमोरी की आवश्यकता होती है। नियमित jpegs को स्ट्रीम किया जा सकता है: आपको केवल छोटे वर्गों में डिकोड करने की आवश्यकता है। एक प्रगतिशील jpg को डीकोड करने के लिए आपको एक बार में पूरी डिकम्प्रेस्ड इमेज को होल्ड करना होगा।
'12:34

72

मैंने सभी इमेज ऑप्टिमाइज़ेशन टूल के लिए एक GUI लिखा था , जिसमें मैं MozJPEG को शामिल कर सकता हूं और jpegoptimजो हफ़मैन टेबल, प्रगतिशील स्कैन और ऑप्टिमाइज़ली ऑप्टिमाइज़ करता है, अदृश्य मेटाडेटा को हटा दें।

ImageOptim यह smushing

यदि आपके पास मैक नहीं है, तो मेरे पास एक बुनियादी वेब इंटरफ़ेस है जो किसी भी प्लेटफ़ॉर्म पर काम करता है।


5
अति उत्कृष्ट! आपको, श्रीमान, एक फ्लेट बटन की जरूरत है। या गिट्टिप में शामिल हों।
थिलो

2
ImageOptim और ImageAlpha बहुत अच्छे हैं!
जॉन जेड

महान उपकरण - मामूली सुझाव। क्यों JPEGoptim को 80% गुणवत्ता तक सीमित करें - बड़ी पृष्ठभूमि की छवियां अक्सर आप 60% या उससे भी कम जाना चाहते हैं। thx
नीको

EXIF डेटा क्यों निकालें? : /
एड्रियन Be

@ AdrienBe 1. गोपनीयता। आप चाहते हैं कि नेट पर हर कोई आपके जीपीएस स्थान को न जान पाए। 2. क्योंकि फोटोशॉप से ​​सेव की गई फाइल्स में मेगाबाइट्स एक्सएमएल कचरा हो सकता है ।
कोर्नेल

12

[विन्डोज़ ओनली]

RIOT (रेडिकल इमेज ऑप्टिमाइज़ेशन टूल) यह सबसे बड़ा इमेज ऑप्टिमाइज़ेशन टूल है जो मैंने पाया है!

http://luci.criosweb.ro/riot/

आप आसानी से उप-नमूने के माध्यम से 800KB तक नीचे 10MB की छवि प्राप्त कर सकते हैं। यह PNG, GIF और JPEG को सपोर्ट करता है। यहां तक ​​कि यह संदर्भ मेनू में भी एकीकृत होता है ताकि आप चित्रों को सीधे वहां भेज सकें। आपको घूमने, फिर से आकार देने, निर्दिष्ट केबी को संपीड़ित करने, और बहुत कुछ करने की अनुमति देता है। इसके अलावा GIMP और IrfanView और अन्य चीजों के लिए प्लगइन्स भी हैं।

यदि आप इसे अपने कार्यक्रमों या जावा स्क्रिप्ट / c ++ प्रोग्राम में शामिल करना चाहते हैं तो एक DLL भी उपलब्ध है।

एक अन्य विकल्प http://pnggauntlet.com/ PNGGAUNTLET हमेशा के लिए है लेकिन यह एक बहुत अच्छा काम करता है।

[विन्डोज़ ओनली]


7
चेतावनी: RIOT अच्छा लग रहा है, लेकिन यह TuneUp को स्थापित करता है और आपसे पूछे बिना थूक देता है, .. मैं इसे मैलवेयर के रूप में वर्गीकृत करूंगा।
डैनियल डब्ल्यू।

1
@DanFromGermany सही है। यहाँ देखें समीक्षाएं: download.cnet.com/RIOT/3000-12511_4-10911908.html#summaryList
RNickMcCandless

1
यह हाल तक कभी नहीं किया।
बेन

मालवेयर अलर्ट! क्रोम डाउनलोड प्रबंधक ने चेतावनी दी है कि RIOT मैलवेयर है
ruhong

8
FYI करें: RIOT के लिए एक पोर्टेबल .zip फ़ाइल है जिसमें किसी भी तरह का कोई मालवेयर या इंस्टॉलर नहीं है। बस उनके डाउनलोड पृष्ठ पर नीचे स्क्रॉल करें। luci.criosweb.ro/riot/download
Goyuix

12

JPEGmini नामक एक नई सेवा अविश्वसनीय परिणाम पैदा करती है। शर्म की बात है कि यह केवल ऑनलाइन है। संपादित करें : यह अब विंडोज और मैक के लिए उपलब्ध है


अब हमारे पास एक मैक ऐप उपलब्ध है (प्रकटीकरण: मैं विकास टीम पर हूं)
DanJ

4
मुझे नहीं पता कि आप लेखक हैं या नहीं, लेकिन यह ऐप उपयोगकर्ताओं को भ्रमित कर रहा है। यदि आप संपीड़न राशि का पता लगाने के लिए उनकी "मिनी" छवियों पर jpegquality.c चलाते हैं , और फिर समान गुणवत्ता => आप दोनों चित्रों में समान परिणाम प्राप्त करते हैं, तो समान छवि के साथ मूल छवि को संपीड़ित करें। Imagemagick खुला-स्रोत हो सकता है, लेकिन इसका उपयोग करना ठीक नहीं है और फिर आप दावा करते हैं कि आपने एक नई संपीड़न तकनीक विकसित की है
अच्छा गधा

@onetrickpony: मैं उनके साथ किसी भी तरह से संबद्ध नहीं हूं।
एडुआर्डो मोल्टनी

@niceass आपको कैसे पता चलेगा कि JPEGmini ImageMagick कोड का उपयोग कर रहा है? गुणवत्ता कारक जानना समान है क्योंकि IM से आउटपुट प्रमाण नहीं है। मेरा अनुमान है कि वे गुणवत्ता कारकों को कम करने में छवि को फिर से छानते हैं, शायद थोड़े से फ़िल्टरिंग के साथ और वे कुछ गुणवत्ता मीट्रिक का उपयोग करते हैं कि कब रोकना है।
koan

मैंने नवीनतम जेपीईजीमिनि को एक छवि पर चलाया, जिसे मैंने पहले ImageMagick से निर्यात किया था और यह बताया गया था कि जेपीईजीमिन पहले से ही इस पर चलाया गया था - जिसे मुझे याद नहीं है। Jpegtran -optimize -copy चलाने से कोई भी छवि पर 12 KB से कम आकार का नहीं होता है।
koan

10

उपरोक्त सुझावों की एक संख्या की कोशिश की - मैं व्यक्तिगत रूप से दोषरहित संपीड़न के बाद था।

मेरी नमूना छवि का मूल आकार 67,737 बाइट्स था।

Kraken.io का उपयोग करते हुए, यह 64,718 से नीचे चला गया। jpegtran का उपयोग करते हुए, यह 64,718 तक नीचे चला गया, याहू स्मूच का उपयोग करते हुए, यह घटकर 61,746 हो गया। इमेजमाजिक (-स्ट्रिप) का उपयोग करते हुए, यह घटकर 65,312 हो गया

Smush.py विकल्प आशाजनक लग रहा है, लेकिन मेरे लिए जल्दी करने के लिए स्थापना बहुत जटिल थी

jpegrescan बहुत आशाजनक लग रहा है, लेकिन यूनिक्स हो रहा है और मैं विंडोज़ का उपयोग कर रहा हूं

jpegmini दोषरहित नहीं है, लेकिन मैं अंतर नहीं बता सकता (नीचे 22,172)

प्लिन्थ का अल्ट्रासॉफ्ट jpegstripper ऐप मेरी विंडोज़ 7 पर काम नहीं करता है

jpegoptim विंडोज़ नहीं है - मेरे लिए अच्छा नहीं है

दंगा (गुणवत्ता को 100% पर रखते हुए) इसे 63,416 तक नीचे ले आया और क्रोमा सबसम्पलिंग के साथ उच्च पर सेट किया गया, यह घटकर 61,912 हो गया - मुझे नहीं पता कि यह दोषरहित है या नहीं हालांकि, और मुझे लगता है कि यह मूल से हल्का लग रहा है ।

तो मेरा फैसला हां तमाचा है अगर यह दोषरहित होना चाहिए


अगर आप जिद्दी हो तो jpegrescan विंडोज पर काम करता है। यह जादू की तरह आकार को बंद कर देता है (गुणवत्ता में कोई नुकसान नहीं होने के साथ 5-15%), जो आश्चर्यजनक है, क्योंकि यह प्रगतिशील स्कैन ऑर्डरिंग एएफएआईके को फिर से आदेश दे रहा है (आप अन्य कार्यक्रमों में भी यही नोटिस कर सकते हैं, फाइलें कभी-कभी फ़ोटोशॉप में मामूली रूप से छोटी हो जाती हैं। यदि आप बिना किसी स्पष्ट कारण के विभिन्न प्रकार के स्कैन चुनते हैं)। इसके अलावा, यह x264 बनाने वाले लोगों में से एक द्वारा किया गया था, वह संपीड़न के क्षेत्र में इस तरह के विलक्षण हैं।
कैमिलो मार्टिन

9

मैं Imagemagick कोशिश करूँगा। इसमें कई टन कमांड लाइन विकल्प हैं, यह मुफ़्त है और एक अच्छा लाइसेंस है। http://www.imagemagick.org

स्ट्रीप नामक एक विकल्प प्रतीत होता है जो आपकी सहायता कर सकता है: http://www.imagemagick.org/script/command-line-options.php#strip


धन्यवाद! नहीं पता था कि ImageMagick ऐसा कर सकता है।
chris166

7

ImageOptim वास्तव में चालाक है। लेखक द्वारा पोस्ट की गई कमांड लाइन विकल्प जीयूआई को दिखाएगा और प्रगति दिखाएगा। मैंने अनुकूलन के लिए jpegtran का उपयोग किया और प्रगतिशील के लिए परिवर्तित किया, फिर ImageOptim को आगे के प्रगतिशील अनुकूलन और अन्य फ़ाइल प्रकारों के लिए।

इस फ़ोरम में स्क्रिप्ट कोड का पुन: उपयोग भी पाया गया (सभी फ़ाइलों को प्रतिस्थापित किया गया):

jpegtran

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.jpeg" -or -name "*.JPG" \)); do
    echo found $file for optimizing...
    jpegtran -copy comments -optimize -progressive -outfile $file $file
done

ImageOptim

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.png" -or -name "*.gif" \)); do
do
    echo found $file for optimizing...
    open -a ImageOptim.app $file
done

4

किसी की तलाश के मामले में, मैंने Yahoo के Smush.it का एक ऑफ़लाइन संस्करण लिखा है। यह दोषरहित रूप से pngs, jpgs और gifs (एनिमेटेड और स्थिर) का अनुकूलन करेगा:

http://github.com/thebeansgroup/smush.py


यह ठीक काम करता है, लेकिन पीएनजी संपीड़न के साथ एक समस्या है :(

4

आप jpegoptim का उपयोग कर सकते हैं जो डिफ़ॉल्ट रूप से jpeg फ़ाइलों को दोषरहित रूप से अनुकूलित करेगा। --strip-allविकल्प सभी अतिरिक्त एम्बेडेड जानकारी स्ट्रिप्स। आप --maxस्विच के साथ एक हानिपूर्ण मोड भी निर्दिष्ट कर सकते हैं जो तब उपयोगी होता है जब आपके पास बहुत उच्च गुणवत्ता वाले सेटिंग के साथ सहेजे गए चित्र होते हैं, जो कि उदाहरण के लिए आवश्यक नहीं है। वेब सामग्री।

आपको jpegtran के साथ भी वैसा ही अनुकूलन मिलता है (OutOfMemory द्वारा उत्तर देखें) लेकिन jpegoptim प्रगतिशील फ़ेगल्स को नहीं बचा सकता है।


4

मैंने एक कमांड लाइन टूल लिखा है, जिसे 'picopt' (ImageOptim के समान) कहा जाता है जो JPEG, PNG, GIFS, एनिमेटेड GIFS और यहां तक ​​कि कॉमिक बुक आर्काइव कंटेंट (CBR / CBZ) को ऑप्टिमाइज़ करने के लिए बाहरी प्रोग्राम्स का उपयोग करता है।

यह ओएस एक्स या लिनक्स सिस्टम पर होमब्रेव के साथ उपयोग के लिए उपयुक्त है, जहां आपने जेपग्रेस्कन, जेपीटरन, ऑप्टिपंग, गिफ्सिकल आदि उपकरण स्थापित किए हैं।

https://github.com/ajslater/picopt


क्या इसका कोई विंडोज़ संस्करण है?
starbeamrainbowlabs

अगर आप साइबर माहौल की तरह विंडोज वातावरण में इसकी सकारात्मक निर्भरता स्थापित कर सकते हैं। आप इसे परीक्षण करने वाले पहले व्यक्ति होंगे, हालाँकि।
एजे स्लेटर

3

मैं भी ImageMagick की सिफारिश करेंगे । इसमें EXIF ​​मेटाडेटा को हटाने के लिए कमांड लाइन विकल्प है

mogrify -strip image.jpg

वहाँ बहुत सारे अन्य उपकरण हैं जो एक ही काम करते हैं।

जहाँ तक जेपीईजी पुनः प्राप्त करने की बात है, नहीं। JPEGs के साथ शुरू करने के लिए हानिप्रद हैं, इसलिए किसी भी प्रकार की पुनर्संरचना केवल छवि गुणवत्ता को नुकसान पहुंचाने वाली है। हालाँकि, यदि आपके पास दोषरहित एन्कोडेड चित्र हैं, तो कुछ एनकोडर दूसरों की तुलना में बेहतर काम करते हैं। मैंने देखा है कि फ़ोटोशॉप के साथ JPEGs लगातार बेहतर दिखते हैं जब जटिल कारणों के कारण ImageMagick (समान फ़ाइल आकार के बावजूद) के साथ एन्कोड किया गया । इसके अलावा (और यह आपके लिए प्रासंगिक है), मुझे पता है कि कम से कम फ़ोटोशॉप जेपीईजी को अनुकूलित के रूप में सहेज सकता है, जिसका अर्थ है कि वे कुछ सामान के साथ संगतता छोड़ते हैं जिन्हें आप शायद केबी के एक जोड़े को बचाने के बारे में परवाह नहीं करते हैं। इसके अलावा, सुनिश्चित करें कि आपके पास कोई रंगीन प्रोफ़ाइल नहीं है और आप KB के किसी अन्य जोड़े को सहेजने में सक्षम हो सकते हैं।


दिलचस्प। मैंने हमेशा सोचा था कि सभी छवि उपकरणों में 90% गुणवत्ता समान है। क्या फ़ोटोशॉप एकमात्र उपकरण है जो अनुकूलित डीसीटी गुणांक का उपयोग करता है?
च्र .166

1
जब तक मैं फ़ोटोशॉप और इमेजमेगिक में समान चित्रों को सहेजने की कोशिश नहीं करता, तब तक 90% विभिन्न उपकरणों में समान थे। मैंने पाया कि फ़ोटोशॉप में वेब के लिए सेव इन वेब में लगभग 70% फाइलें थीं जो कि Imagemagick में 92% के समान आकार की थीं, लेकिन फ़ोटोशॉप की फाइलें बेहतर गुणवत्ता वाली थीं। मुझे नहीं पता कि अन्य उपकरण इसे कैसे करते हैं।
डेविड जॉनस्टोन

क्या आप जानते हैं कि ImageMagick के PHP संस्करण का उपयोग करके EXIF ​​मेटा-डेटा स्ट्रिपिंग कैसे करते हैं?
सन्नी

@ सोनी वास्तव में नहीं है, लेकिन आप इस समारोह में दिलचस्पी ले सकते हैं: php.net/manual/en/function.imagick-stripimage.php
डेविड जॉनस्टोन

धन्यवाद डेविड, यही मैंने ढूंढना समाप्त किया। यहाँ मेरा धागा है: stackoverflow.com/questions/2540068
सन्नी

2

मैं http://kraken.io का उपयोग करने की सलाह दूंगा। यह अल्ट्रा-फास्ट वेबऐप है जो आपके PNG और JPEG फ़ाइलों को smush.it से बेहतर बनाता है।


2

मैं JpegOptim का उपयोग करने की सलाह देता हूं, यह मुफ़्त है और वास्तव में अच्छा है, आप गुणवत्ता को निर्दिष्ट कर सकते हैं, जिस आकार को आप चाहते हैं ... और कमांड लाइन में उपयोग करना आसान है।

JpegOptim


1

क्या मैं इसे पारदर्शिता के लिए सुझा सकता हूं:

convert 'yourfile.png' ppm:- | jpeg-recompress -t 97 -q veryhigh -a -m smallfry -s -r -S disable - yourfile.jpg

यह का उपयोग करता है ImageMagick की convertऔर jpeg-recompressसे jpeg-संग्रह

दोनों ओपन-सोर्स हैं और विंडोज, मैक और लिनक्स पर काम करते हैं। आप विभिन्न गुणवत्ता अपेक्षाओं के लिए ऊपर दिए गए विकल्पों को ट्विक करना चाह सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.