2010-04-21 17 views
16

मैं कुछ फ़ाइलों को एक प्रारूप से दूसरे प्रारूप में बदलने के लिए ImageMagick का उपयोग कर रहा हूं। मैं हमेशा इस धारणा के तहत था कि .png फ़ाइलों को .jpg के रूप में बड़ा/छोटा होना चाहिए, यदि छोटा नहीं है, और निश्चित रूप से .gif से छोटा है।ImageMagick द्वारा उत्पादित '.png' फ़ाइलें '.jpg' और '.gif' फ़ाइलों की तुलना में बहुत बड़ी हैं?

हालांकि जब मैं

convert photo.jpg photo.png 

चलाने फ़ाइलें मैं बाहर हो रही है के बारे में 6 बार मूल जेपीजी से भी बड़ा है।
मूल जेपीजी 300x500 पीएक्स, 52 केबी के बारे में एक नियमित तस्वीर है। आउटपुट एक ही आयाम का एक उचित पीएनजी है, लेकिन आकार लगभग 307 केबी है?

क्या किसी को पता है कि हैक क्या चल रहा है? क्या मुझसे कुछ गलत हो रही है?

पी.एस .:

मैं एक ही परिणाम के साथ डेबियन और Windows पर दोनों की कोशिश की।

पी पी एस:

इसके अलावा जब मैं इस के लिए विकल्प का आकार बदलने और 10000 x 10000 परिवर्तित और jpg करने के लिए कुछ ही सेकंड का आकार बदलने लेता आकार परिवर्तन जोड़ने के लिए, लेकिन यह काम करता है, अगर मैं png का भी ऐसा ही है, मैं strt सिर्फ स्मृति से पूर्णतः

PPPS चल: लोग हैं, जो PNG vs. GIF vs. JPEG vs. SVG - When best to use? की डुप्लीकेट के रूप में इस सवाल का अंकन रखने के लिए। सावधानी से पढ़ें और प्रश्न को समझें। यह एक डुप्लिकेट नहीं है, क्योंकि यह प्रश्न 'विशिष्ट अनुप्रयोग (छवि मैजिक) के साथ प्रोग्रामेटिक रूप से उत्पादित फ़ाइलों के बारे में पूछता है। डुप्लिकेट के रूप में चिह्नित करने वाला प्रश्न यह पूछ रहा है कि वेब पर कौन सा छवि प्रारूप बेहतर है। दो अलग-अलग प्रश्न।

+1

शायद इसे कॉल करें ** मैं छविमैजिक से छोटे पीएनजी कैसे आउटपुट कर सकता हूं? ** – sam

+0

नहीं .. मैं जानना चाहता था कि क्यों, एक बार मुझे पता चल गया कि क्यों समस्या का, मैं आमतौर पर 'कैसे' समाधान का पता लगा सकता हूं :-) – konung

+1

अनुक्रमित पीएनजी के लिए खोजें, इसका आकार जीआईएफ से तुलनीय होगा (क्योंकि जीआईएफ मैं हूं ndexed)। – user

उत्तर

12

जेपीजी lossy compression एल्गोरिदम है जबकि पीएनजी lossless one है।

यह तथ्य अकेले (सामान्य रूप से) जेपीजी छवियों को पीएनजी से छोटे बना देगा। आप प्रत्येक प्रारूप के लिए संपीड़न अनुपात को ट्विक कर सकते हैं, इसलिए यह भी हो सकता है कि आप अपने पीएनजी फ़ाइलों को उतना ही संपीड़ित नहीं कर रहे हैं जितना आपके जेपीजी वाले हैं।

एक फोटोग्राफिक छवि बचत के लिए जेपीजी आमतौर पर पीएनजी की तुलना में एक छोटी फ़ाइल उत्पन्न करेगा क्योंकि संपीड़न के साथ काम करने के लिए छवि में अधिक शोर या यादृच्छिकता है। ग्राफिक कला उपकरणों द्वारा बनाई गई छवियों में अधिक कठोर किनारों और ठोस रंग के क्षेत्र होंगे जो पीएनजी में बेहतर संपीड़ित होंगे।

यदि आपके पास अपनी छवि में टेक्स्ट है तो पीएनजी एक बेहतर गुणवत्ता वाली छवि का उत्पादन करने जा रहा है क्योंकि पात्रों के कड़े किनारों को धुंधला नहीं किया जाएगा जैसे कि जेपीजी का उपयोग किया जाता है।

जीआईएफ छोटा है क्योंकि यह जेपीजी और पीएनजी में प्रत्येक पिक्सेल (या पिक्सेल समूह) के लिए अलग आरजीबी मूल्यों के बजाय रंग पैलेट (256 रंगों) पर आधारित है।

+0

क्रिस, एक त्वरित उत्तर के लिए धन्यवाद। मैंने पहले प्रोग्रामिंग छवियों को प्रसंस्करण नहीं किया है, और फ़ोटोशॉप और पेंटशॉप जैसे गुई उत्पादों से आ रहा है, मुझे छोटे पीएनजी होने के लिए उपयोग किया जाता है, क्योंकि वे डिफ़ॉल्ट रूप से अनुकूलित पैलेट का उपयोग करते हैं। क्या पीएनजी में तेजी से रूपांतरण करने के लिए गुणवत्ता को कम करने के लिए छविमैजिक प्राप्त करने का कोई तरीका है? – konung

+0

@ निक - मुझे छविमैजिक नहीं पता है, इसलिए मैं निश्चित रूप से नहीं कह सकता हूं, लेकिन कहीं भी "विकल्प" बटन होना चाहिए, या तो सहेजने वाले संवाद पर या वरीयताओं में। – ChrisF

+0

Imagemagick के बारे में कोई विचार नहीं है लेकिन किसी भी अच्छे छवि संपादक में एक फ़ंक्शन होना चाहिए जो चित्र में उपयोग किए गए रंगों की संख्या को कम कर देता है। – michalburger1

5

.jpeg फ़ाइल प्रारूप एक हानिकारक प्रारूप है, यह जानकारी को दूर करता है। जो अच्छा संपीड़न अनुपात के लिए बनाता है। .gif फ़ाइल प्रारूप हानिकारक नहीं है लेकिन अन्य जानकारी खो देता है, यह केवल 256 रंगों का समर्थन करता है। .png फ़ाइल प्रारूप हानिकारक नहीं है और रंग सीमा को संरक्षित करता है।

2

यह छवि की तरह पर निर्भर करता है। जेपीईजी का हानिकारक संपीड़न छवियों पर बहुत अच्छी तरह से काम करता है जिसमें रंगीन ग्रेडिएंट (यानी फोटो) हैं।

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

9

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

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

+0

मार्क सलाह के लिए धन्यवाद, लेकिन यहां तक ​​कि पेंग के लिए 254 रंग, उत्पादन और जेपीईजी से बड़ा छवि। मुझे लगता है मुझे सब कुछ jpgs के रूप में सहेजना होगा। धन्यवाद – konung

+0

@ निक, एक प्रश्न - क्या आपके gifs jpgs से भी बड़े हैं? यदि ऐसा है, तो आप शायद सही विकल्प बना दिया है। पीएनजी gif से छोटा हो सकता है, लेकिन एक विशाल मार्जिन से नहीं। –

+0

हाँ gifs निश्चित रूप से बड़े हैं - कोई आश्चर्य नहीं, मैंने हमेशा सोचा कि पीएनजी बेहतर परिणाम देगा। लेकिन चूंकि मैं वास्तव में यहां गुणवत्ता के लिए प्रयास नहीं करता हूं, बल्कि छोटे आकार के लिए, jpg यह है। धन्यवाद – konung

16

यहां ध्यान देने योग्य महत्वपूर्ण बात यह है कि प्रत्येक छवि फ़ाइल प्रारूप विशिष्ट उद्देश्यों के लिए सर्वोत्तम है।

जेपीईजी के लिए खड़ा है "संयुक्त फोटोग्राफिक विशेषज्ञ समूह।" यह सही वहाँ आप को बताना चाहिए कि .JPG फ़ाइल स्वरूप तस्वीरों लिए अनुकूलित है। यह रेखा-कला, लोगो, ढाल या टाइल/पैटर्न वाली पृष्ठभूमि, और इसी तरह के लिए बहुत अच्छा काम नहीं करता है। जेपीजी के डीसीटी (बुद्धिमान कोसाइन ट्रांसफॉर्म) कलाकृतियों ("अवरुद्ध" कलाकृतियों जिन्हें हम सभी जानते हैं और नफरत करते हैं) तस्वीरों की तुलना में लाइन कला और लोगो के साथ अधिक ध्यान देने योग्य हैं।

पीएनजी ने जीआईएफ को हर चीज के लिए जीआईएफ बदल दिया है, जिसे छोड़कर जीआईएफ कभी भी अच्छा था, और केवल इसलिए कि कोई स्पष्ट मानक उभरा नहीं है: एनिमेशन। एनिमेटेड .GIFs वेब पर अच्छी तरह से जाना जाता है। एनिमेटेड पीएनजी के लिए दो प्रतिस्पर्धी मानक हैं: एपीएनजी और एमएनजी।

एपीएनजी अधिकांश आधुनिक ब्राउज़रों में समर्थित है, और यह पूरी तरह से पीछे की तरफ संगत है (फ़ाइल एक्सटेंशन पीएनजी, नहीं .एपीएनजी है, और यदि कोई प्रोग्राम जो प्रदर्शित कर सकता है। पीएनजी लेकिन पता नहीं है कि एपीएनजी "खिलाया" है एपीएनजी, यह डेवलपर की पसंद की स्टैंड-इन छवि या एनीमेशन के पहले फ्रेम को प्रदर्शित करेगा यदि ऐसा कोई स्टैंड-इन प्रदान नहीं किया गया था - जहां तक ​​पुराना प्रोग्राम चिंतित है, यह सिर्फ एक सामान्य सिंगल-फ्रेम है। पीएनजी उसमें एक छवि के साथ - बाकी को सुरक्षित रूप से अनदेखा किया जाता है)। गेको (एफएफ, आदि) और प्रेस्टो (ओपेरा) इसे मूल रूप से समर्थन देता है, और Google क्रोम (वेबकिट का उपयोग करके) ऐड-ऑन के साथ कर सकता है।

एमएनजी में वास्तविक पीएनजी प्रारूप प्रारूप टीम का समर्थन है, लेकिन यह अपना प्रारूप है और पीछे की ओर संगत नहीं है, लेकिन यह अधिक शक्तिशाली और लचीला है। अभी, केवल केएचटीएम-आधारित ब्राउज़र (Konquerer) इसका समर्थन करते हैं: ट्रिडेंट (आईई), गेको, वेबकिट (क्रोम, क्रोमियम, सफारी), न ही प्रेस्टो।

पीएनजी सबकुछ करता है (एनीएनजी के साथ बढ़ाए गए एनिमेशन को छोड़कर) जो जीआईएफ करता है, और बेहतर होता है। अन्य सभी बराबर हैं, एक पीएनजी लगभग एक ही संकल्प और बिट गहराई पर जीआईएफ से हमेशा छोटा होगा। जीआईएफ की तरह, पीएनजी अनुक्रमित रंग (पैलेट) मोड में 8 बिट्स प्रति पिक्सल तक रंग गहराई का समर्थन कर सकता है, लेकिन जीआईएफ (अभी तक .जेपीईजी) के विपरीत यह 24 बिट प्रति पिक्सेल पर डायरेक्ट-कलर मोड का भी समर्थन करता है।

या तो मोड में यह अल्फा पारदर्शिता के 8 बिट, .GIF के विपरीत (जो केवल अनुक्रमित रंग पारदर्शिता कर सकते हैं जोड़ सकते हैं [पैलेट 100% पारदर्शिता के साथ प्रतिस्थापित किया जा करने के बाहर एक रंग चुनें, अदर्शन उर्फ] -। पीएनजी भी ऐसा कर सकता है)। अल्फा पारदर्शिता अनुक्रमित पारदर्शिता की तुलना में बहुत बेहतर परिणाम उत्पन्न करती है, क्योंकि पिक्सल आंशिक रूप से पारदर्शी हो सकते हैं, जबकि अनुक्रमित पारदर्शिता (केवल एकमात्र प्रकार में उपलब्ध है।जीआईएफ) आपके विकल्प या तो अपारदर्शी या अदृश्य हैं। यह गैर-आयताकार वस्तुओं के आस-पास "हेलो" बनाता है जब एक के अलावा पृष्ठभूमि रंगों के खिलाफ रखा जाता है। जीआईएफ या अनुक्रमित पीएनजी मूल रूप से "मैट" था। यह चमक, ड्रॉप छाया, और, ज़ाहिर है, रंगीन वस्तुओं को देखने के माध्यम से (बिना दांत के) प्रभावों को करने में सक्षम होने से रोकता है। अल्फा पारदर्शिता आसानी से उन सभी चीजों को लगभग किसी भी पृष्ठभूमि के खिलाफ कर सकती है (चमक सफेद पृष्ठभूमि पर काफी हद तक अदृश्य हो जाएगी, और छाया छायाएं काला पर अदृश्य हो जाएंगी, लेकिन आप जानते हैं कि मेरा क्या मतलब है)।

हाँ, आप एक अनुक्रमित रंग .PNG में 8 बिट अल्फा पारदर्शिता कर सकते हैं! और अंदाज लगाइये क्या? यहां तक ​​कि माइक्रोसॉफ़्ट इंटरनेट एक्सप्लोरर 6 भी उन लोगों को दिखा सकता है जो पारदर्शिता के साथ पूर्ण हैं! यह केवल 32-बिट पीएनजी (24-बिट आरजीबी रंग + 8-बिट अल्फा) है कि आईई 6 ने भूरे रंग के रूप में दबाया और प्रदर्शित किया!

सबसे प्रसिद्ध कार्यक्रम जो पीएनजी 8 (अनुक्रमित रंग) को अल्फा पारदर्शिता के साथ निर्यात कर सकता है पारदर्शिता एडोब (पूर्व में मैक्रोमीडिया) आतिशबाज़ी है। जब एडोब ने मैक्रोमीडिया खरीदा तो फ़ोटोशॉप "वेब और उपकरणों के लिए सहेजें" (कम से कम सीएस 3 के रूप में) ऐसा नहीं कर सका, आतिशबाजी से मूल रूप से फीचर को उठाए जाने के बावजूद। यह पीएनजी 8 को बचा सकता है, लेकिन केवल अनुक्रमित रंग पारदर्शिता के साथ।

वैसे भी, पूर्ण 32-बिट (या यहां तक ​​कि 24-बिट) पीएनजी बहुत बड़े होंगे, हालांकि आम तौर पर निकटतम समकक्ष से बहुत छोटे होते हैं। बीएमपी या टीजीए या असंपीड़ित। टीआईएफएफ या कुछ ऐसे (जब तक आप कोशिश नहीं कर रहे हैं इसके साथ एक तस्वीर करो - जेपीईजी के लिए यही है!)। यह आमतौर पर आरएलई (लापरवाही से संपीड़ित बीएमपी) से भी कुछ छोटा होगा या लापरवाही से संपीड़ित होगा। टीआईएफ, सब कुछ बराबर है।

इन अन्य प्रारूपों में से अधिकांश के विपरीत, पीएनजी अत्यधिक उच्च गुणवत्ता के लिए वैकल्पिक 16 बिट्स अल्फा पारदर्शिता के साथ 48-बिट आरजीबी रंग का भी समर्थन करता है (अधिकांश मॉनीटर प्रदर्शित करने से कहीं अधिक)। उच्चतम गहराई स्कैनर या कैमरा (रॉ मोड) या कुछ ऐसे से जानकारी रखने के लिए इन्हें इंटरमीडिएट स्टोरेज प्रारूप के रूप में सबसे अच्छा उपयोग किया जाता है। लापरवाह संपीड़न के बावजूद, उनके फ़ाइल आकार काफी बड़े होंगे।

एक बात यह है कि पीएनजी वर्तमान में गैर-आरजीबी रंग रिक्त स्थान जैसे सीएमवाईके या एल * ए * बी को संभाल नहीं सकता है।

संक्षेप में:

  • तस्वीरों के लिए, .JPG का उपयोग करें।
  • लाइन कला और सीमित रंग के लोगो के लिए, अनुक्रमित रंग पीएनजी (पीएनजी 8) का उपयोग करें, यदि आवश्यक हो तो अल्फा पारदर्शिता के साथ।
  • लाइन कला और व्यापक रंग के लोगो (ढाल भरता की जैसे बहुत सारे, धातु क्रोम प्रकार प्रतिबिंब प्रभाव, आदि) के लिए, अल्फा के साथ सीधे रंग .PNG (PNG24) का उपयोग अगर जरूरत अगर आप चाहते हैं सर्वोत्तम गुणवत्ता या पारदर्शिता की आवश्यकता है (और यह ध्यान न दें कि यह आईई 6 में काम नहीं कर रहा है या पारदर्शी पीएनजी के लिए आईई 6 वर्कअराउंड्स में से एक का उपयोग नहीं करता है), और बड़ी फ़ाइलों और बैंडविड्थ उपयोग को ध्यान में रखें। अन्यथा, .जेपीजी का उपयोग करें, लेकिन ध्यान रखें कि गुणवत्ता खराब हो जाएगी। आपको जेपीईजी गुणवत्ता को बहुत अधिक, विशेष रूप से लोगो या अन्य ग्राफिक्स के लिए "टेक्स्ट" के साथ क्रैंक करने की आवश्यकता हो सकती है, जो आपकी फ़ाइल आकार बचत को कम कर देगी।
  • गैर-फ्लैश/सिल्वरलाइट/वीडियो/एचटीएमएल 5 कैनवास एनिमेशन के लिए, जीआईएफ वर्तमान में मुख्य विकल्प है, लेकिन एपीएनजी पर स्विच करने के लिए तैयार रहें (मुझे नहीं लगता कि एमएनजी इसे अधिक हराकर समर्थन देने के बावजूद इसे मारने जा रहा है जेपीईजी डेवलपर्स से)।
+0

क्या आपने इस साइट पर पंजीकरण किया था ताकि आप छवि संपीड़न प्रारूपों पर एक विश्वकोष लेख लिख सकें? इसे स्वीकार करें, आपने किया। उत्कृष्ट, +1। –

+0

महान सूचनात्मक आलेख जो इस प्रश्न को याद करते हैं - जो छवि मैगिक का उपयोग करके जेपीजी से पीएनजी में कनवर्ट करने के बारे में था, एक प्रारूप या किसी अन्य की योग्यता के बारे में नहीं, जिसे मैं परिचित हूं। शायद इस उत्तर को एक समुदाय विकी के रूप में वर्गीकृत किया जाना चाहिए? – konung

+0

धन्यवाद, टॉम। लेकिन नहीं, मेरे पास पहले से ही खाता था। –

2

जवाब: क्या किसी को पता है कि हैक क्या चल रहा है? क्या मुझसे कुछ गलत हो रही है?

हाँ मैं इस अध्ययन करते हैं, आप कुछ भी गलत नहीं नहीं कर रहे हैं, तो आप का उत्पादन 8 बिट/रंग आरजीबी पीएनजी मैं हल यह कम या pngnq (http://pngnq.sourceforge.net/) कि पीएनजी रंग मैप 8 बिट/रंग का उत्पादन के साथ PNG सेक के साथ।

pngnq, मुझे सबसे ज्यादा सुधार परियोजना के लिए लगता है के बाद से pngquant आदि जैसे अन्य लोगों की एक कांटा है, और इसलिए मैं सिर्फ यह करने के Linux distros के मुख्य धारा में सामान्य रूप से है: पिछले upvoter लिए

convert photo.jpg png:- | pngnq -s 1 > photo.png 

(2016): pngquant को pngquant (https://github.com/pornel/pngquant)

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