पीएनजी: Difference between revisions
(Created page with "{{Short description|Family of lossless compression file formats for image files}} {{other uses}} {{Update|date=October 2021|reason=in comparison to WebP and AVIF image formats...") |
No edit summary |
||
| Line 1: | Line 1: | ||
{{Short description|Family of lossless compression file formats for image files}} | {{Short description|Family of lossless compression file formats for image files}} | ||
{{other uses}} | {{other uses}} | ||
{{Infobox file format | {{Infobox file format | ||
| name = Portable Network Graphics | | name = Portable Network Graphics | ||
| Line 56: | Line 55: | ||
*संपादक: थॉमस बाउटेल | *संपादक: थॉमस बाउटेल | ||
*योगदान संपादक: [[टॉम लेन (कंप्यूटर वैज्ञानिक)]] | *योगदान संपादक: [[टॉम लेन (कंप्यूटर वैज्ञानिक)]] | ||
* लेखक (अंतिम नाम से वर्णानुक्रम में): [[मार्क एडलर]], [[थॉमस बाउटल]], [[क्रिश्चियन ब्रंसचेन]], एडम एम। कोस्टेलो, [[ली डेनियल क्रोकर]], [[एंड्रियास डिल्गर]], [[ओलिवर फ्रॉम]], [[ जीन-लूप गेल्ली ]] | * लेखक (अंतिम नाम से वर्णानुक्रम में): [[मार्क एडलर]], [[थॉमस बाउटल]], [[क्रिश्चियन ब्रंसचेन]], एडम एम। कोस्टेलो, [[ली डेनियल क्रोकर]], [[एंड्रियास डिल्गर]], [[ओलिवर फ्रॉम]], [[ जीन-लूप गेल्ली ]], [[क्रिस हर्बर्थ]], [[अलेक्स जकुलीन]], [[नील केटलर]], टॉम लेन (कंप्यूटर वैज्ञानिक), [[अलेक्जेंडर लेहमैन]], [[क्रिस लिली (कंप्यूटर वैज्ञानिक)]], डेव मार्टिंडेल, [[ओवेन मोर्टेंसन]], कीथ एस. पिकेंस, रॉबर्ट पी. पूले, [[ग्लेन रैंडर्स-पेहरसन]], [[ग्रेग रोएलोफ्स]] , विलेम वैन शाइक, गाइ शल्नाट, [[पॉल श्मिट (कंप्यूटर प्रोग्रामर)]], [[टिम वेगनर]], [[जेरेमी वोहल]] | ||
== फ़ाइल प्रारूप == | == फ़ाइल प्रारूप == | ||
| Line 463: | Line 462: | ||
=== [[ जेपीईजी-रास ]] === | === [[ जेपीईजी-रास ]] === | ||
जेपीईजी-एलएस संयुक्त फोटोग्राफिक विशेषज्ञ समूह द्वारा एक छवि प्रारूप है, हालांकि ऊपर चर्चा की गई अन्य हानिकारक जेपीईजी प्रारूप की तुलना में बहुत कम व्यापक रूप से ज्ञात और समर्थित है। यह पीएनजी के साथ सीधे तुलनीय है, | जेपीईजी-एलएस संयुक्त फोटोग्राफिक विशेषज्ञ समूह द्वारा एक छवि प्रारूप है, हालांकि ऊपर चर्चा की गई अन्य हानिकारक जेपीईजी प्रारूप की तुलना में बहुत कम व्यापक रूप से ज्ञात और समर्थित है। यह पीएनजी के साथ सीधे तुलनीय है, और परीक्षण छवियों का एक मानक सेट है।<ref name="jpegstdimg">{{cite web|url=http://www.itu.int/net/ITU-T/sigdb/speimage/T87.htm|title=T.87 : Lossless and near-lossless compression of continuous-tone still images – Baseline|publisher=International Telecommunication Union|access-date=20 March 2011}}</ref> वाटरलू प्रदर्शनों की सूची कलरसेट पर, परीक्षण छवियों का एक मानक सेट (जेपीईजी-एलएस अनुरूपता परीक्षण सेट से असंबंधित), जेपीईजी-एलएस आम तौर पर पीएनजी से 10-15% बेहतर प्रदर्शन करता है, लेकिन कुछ छवियों पर पीएनजी काफी बेहतर प्रदर्शन करता है। 50-75% का क्रम।<ref name="pngcf">{{harvnb|Roelofs|2003|loc=[http://www.libpng.org/pub/png/book/chapter09.html Chapter 9. Compression and Filtering]}}</ref> इस प्रकार, यदि ये दोनों प्रारूप विकल्प हैं और फ़ाइल का आकार एक महत्वपूर्ण मानदंड है, तो छवि के आधार पर इन दोनों पर विचार किया जाना चाहिए। | ||
=== झगड़ा === | === झगड़ा === | ||
| Line 504: | Line 503: | ||
== फ़ाइल का आकार और अनुकूलन सॉफ्टवेयर == | == फ़ाइल का आकार और अनुकूलन सॉफ्टवेयर == | ||
PNG फ़ाइल का आकार इस बात पर निर्भर करते हुए महत्वपूर्ण रूप से भिन्न हो सकता है कि यह एन्कोडेड और संपीड़ित कैसे है; इस पर चर्चा की गई है और पीएनजी: द डेफिनिटिव गाइड में कई सुझाव दिए गए हैं।<ref name="pngcf" /> | PNG फ़ाइल का आकार इस बात पर निर्भर करते हुए महत्वपूर्ण रूप से भिन्न हो सकता है कि यह एन्कोडेड और संपीड़ित कैसे है; इस पर चर्चा की गई है और पीएनजी: द डेफिनिटिव गाइड में कई सुझाव दिए गए हैं।<ref name="pngcf" /> | ||
| Line 511: | Line 509: | ||
=== जीआईएफ === की तुलना में | === जीआईएफ === की तुलना में | ||
जीआईएफ फाइलों की तुलना में, एक प्रभावी कंप्रेसर द्वारा संपीड़ित समान जानकारी (256 रंग, कोई सहायक हिस्सा/मेटाडेटा) वाली पीएनजी फ़ाइल सामान्य रूप से जीआईएफ छवि से छोटी होती है। फ़ाइल और कंप्रेसर के आधार पर, पीएनजी कुछ छोटे (10%) से लेकर काफी छोटे (50%) से कुछ बड़े (5%) तक हो सकता है, लेकिन शायद ही कभी काफी बड़ा होता है<ref name="pngcf" />बड़ी छवियों के लिए। इसे GIF के [[LZW]] की तुलना में PNG के DEFLATE के प्रदर्शन के लिए जिम्मेदार ठहराया गया है, और क्योंकि PNG के प्रेडिक्टिव फिल्टर की अतिरिक्त प्रीकंप्रेशन परत फाइलों को और कंप्रेस करने के लिए 2-आयामी छवि संरचना का ध्यान रखती है; फ़िल्टर किए गए डेटा के रूप में पिक्सेल के बीच अंतर को एन्कोड करता है, वे सभी संभावित मानों में फैले होने के बजाय 0 के करीब क्लस्टर करते हैं, और इस प्रकार DEFLATE द्वारा अधिक आसानी से संकुचित हो जाते हैं। हालाँकि, Adobe Photoshop, [[CorelDRAW]] और Microsoft पेंट के कुछ संस्करण खराब PNG संपीड़न प्रदान करते हैं, जिससे यह धारणा बनती है कि GIF अधिक कुशल है।<ref name="pngcf" /> | जीआईएफ फाइलों की तुलना में, एक प्रभावी कंप्रेसर द्वारा संपीड़ित समान जानकारी (256 रंग, कोई सहायक हिस्सा/मेटाडेटा) वाली पीएनजी फ़ाइल सामान्य रूप से जीआईएफ छवि से छोटी होती है। फ़ाइल और कंप्रेसर के आधार पर, पीएनजी कुछ छोटे (10%) से लेकर काफी छोटे (50%) से कुछ बड़े (5%) तक हो सकता है, लेकिन शायद ही कभी काफी बड़ा होता है<ref name="pngcf" />बड़ी छवियों के लिए। इसे GIF के [[LZW]] की तुलना में PNG के DEFLATE के प्रदर्शन के लिए जिम्मेदार ठहराया गया है, और क्योंकि PNG के प्रेडिक्टिव फिल्टर की अतिरिक्त प्रीकंप्रेशन परत फाइलों को और कंप्रेस करने के लिए 2-आयामी छवि संरचना का ध्यान रखती है; फ़िल्टर किए गए डेटा के रूप में पिक्सेल के बीच अंतर को एन्कोड करता है, वे सभी संभावित मानों में फैले होने के बजाय 0 के करीब क्लस्टर करते हैं, और इस प्रकार DEFLATE द्वारा अधिक आसानी से संकुचित हो जाते हैं। हालाँकि, Adobe Photoshop, [[CorelDRAW]] और Microsoft पेंट के कुछ संस्करण खराब PNG संपीड़न प्रदान करते हैं, जिससे यह धारणा बनती है कि GIF अधिक कुशल है।<ref name="pngcf" /> | ||
=== फ़ाइल आकार कारक === | === फ़ाइल आकार कारक === | ||
पीएनजी फाइलें कई कारकों के कारण आकार में भिन्न होती हैं: | पीएनजी फाइलें कई कारकों के कारण आकार में भिन्न होती हैं: | ||
| Line 521: | Line 517: | ||
इस प्रकार उच्च रंग की गहराई, अधिकतम मेटाडेटा (रंग स्थान की जानकारी सहित, सूचना के साथ जो प्रदर्शन को प्रभावित नहीं करता है), इंटरलेसिंग और संपीड़न की गति के बीच एक फाइलसाइज ट्रेड-ऑफ है, जो कम रंग की गहराई के साथ बड़ी फाइलें उत्पन्न करता है, कम या कोई सहायक भाग नहीं, कोई इंटरलेसिंग नहीं, और ट्यून किया गया लेकिन कम्प्यूटेशनल रूप से गहन फ़िल्टरिंग और संपीड़न। अलग-अलग उद्देश्यों के लिए, अलग-अलग ट्रेड-ऑफ़ चुने जाते हैं: एक अधिकतम फ़ाइल संग्रह और संपादन के लिए सर्वोत्तम हो सकती है, जबकि एक स्ट्रिप्ड डाउन फ़ाइल एक वेबसाइट पर उपयोग के लिए सर्वोत्तम हो सकती है, और इसी तरह तेज़ लेकिन खराब संपीड़न को बार-बार संपादन और सहेजते समय प्राथमिकता दी जाती है। फ़ाइल, जबकि फ़ाइल के स्थिर होने पर धीमी लेकिन उच्च संपीड़न को प्राथमिकता दी जाती है: संग्रह या पोस्ट करते समय। | इस प्रकार उच्च रंग की गहराई, अधिकतम मेटाडेटा (रंग स्थान की जानकारी सहित, सूचना के साथ जो प्रदर्शन को प्रभावित नहीं करता है), इंटरलेसिंग और संपीड़न की गति के बीच एक फाइलसाइज ट्रेड-ऑफ है, जो कम रंग की गहराई के साथ बड़ी फाइलें उत्पन्न करता है, कम या कोई सहायक भाग नहीं, कोई इंटरलेसिंग नहीं, और ट्यून किया गया लेकिन कम्प्यूटेशनल रूप से गहन फ़िल्टरिंग और संपीड़न। अलग-अलग उद्देश्यों के लिए, अलग-अलग ट्रेड-ऑफ़ चुने जाते हैं: एक अधिकतम फ़ाइल संग्रह और संपादन के लिए सर्वोत्तम हो सकती है, जबकि एक स्ट्रिप्ड डाउन फ़ाइल एक वेबसाइट पर उपयोग के लिए सर्वोत्तम हो सकती है, और इसी तरह तेज़ लेकिन खराब संपीड़न को बार-बार संपादन और सहेजते समय प्राथमिकता दी जाती है। फ़ाइल, जबकि फ़ाइल के स्थिर होने पर धीमी लेकिन उच्च संपीड़न को प्राथमिकता दी जाती है: संग्रह या पोस्ट करते समय। | ||
इंटरलेसिंग एक ट्रेड-ऑफ़ है: यह नाटकीय रूप से बड़ी फ़ाइलों के शुरुआती रेंडरिंग को गति देता है (विलंबता में सुधार करता है), लेकिन थोड़े लाभ के लिए फ़ाइल का आकार बढ़ा सकता है (थ्रूपुट घटा सकता है), विशेष रूप से छोटी फ़ाइलों के लिए।<ref name="pngcf" /> | इंटरलेसिंग एक ट्रेड-ऑफ़ है: यह नाटकीय रूप से बड़ी फ़ाइलों के शुरुआती रेंडरिंग को गति देता है (विलंबता में सुधार करता है), लेकिन थोड़े लाभ के लिए फ़ाइल का आकार बढ़ा सकता है (थ्रूपुट घटा सकता है), विशेष रूप से छोटी फ़ाइलों के लिए।<ref name="pngcf" /> | ||
==== हानिपूर्ण पीएनजी संपीड़न ==== | ==== हानिपूर्ण पीएनजी संपीड़न ==== | ||
हालांकि पीएनजी एक दोषरहित प्रारूप है, पीएनजी कंप्रेशन को बेहतर बनाने के लिए पीएनजी एनकोडर हानिपूर्ण तरीके से छवि डेटा को प्रीप्रोसेस कर सकते हैं। उदाहरण के लिए, ट्रूकलर पीएनजी को 256 रंगों में परिमाणित करने से फ़ाइल आकार में संभावित कमी के लिए अनुक्रमित रंग प्रकार का उपयोग किया जा सकता है।<ref>{{cite web|url=http://pngmini.com/lossypng.html|title=PNG एक हानिपूर्ण प्रारूप हो सकता है|publisher=Pngmini.com|access-date=2014-02-01}}</ref> | हालांकि पीएनजी एक दोषरहित प्रारूप है, पीएनजी कंप्रेशन को बेहतर बनाने के लिए पीएनजी एनकोडर हानिपूर्ण तरीके से छवि डेटा को प्रीप्रोसेस कर सकते हैं। उदाहरण के लिए, ट्रूकलर पीएनजी को 256 रंगों में परिमाणित करने से फ़ाइल आकार में संभावित कमी के लिए अनुक्रमित रंग प्रकार का उपयोग किया जा सकता है।<ref>{{cite web|url=http://pngmini.com/lossypng.html|title=PNG एक हानिपूर्ण प्रारूप हो सकता है|publisher=Pngmini.com|access-date=2014-02-01}}</ref> | ||
=== छवि संपादन सॉफ्टवेयर === | === छवि संपादन सॉफ्टवेयर === | ||
पीएनजी फाइलों को सहेजते समय कुछ प्रोग्राम दूसरों की तुलना में अधिक कुशल होते हैं, यह प्रोग्राम द्वारा उपयोग किए जाने वाले पीएनजी संपीड़न के कार्यान्वयन से संबंधित है। | पीएनजी फाइलों को सहेजते समय कुछ प्रोग्राम दूसरों की तुलना में अधिक कुशल होते हैं, यह प्रोग्राम द्वारा उपयोग किए जाने वाले पीएनजी संपीड़न के कार्यान्वयन से संबंधित है। | ||
| Line 539: | Line 530: | ||
खराब पीएनजी कम्प्रेसर के अन्य उल्लेखनीय उदाहरणों में शामिल हैं: | खराब पीएनजी कम्प्रेसर के अन्य उल्लेखनीय उदाहरणों में शामिल हैं: | ||
* विंडोज एक्सपी के लिए माइक्रोसॉफ्ट का पेंट | * विंडोज एक्सपी के लिए माइक्रोसॉफ्ट का पेंट | ||
* माइक्रोसॉफ्ट पिक्चर इट! फोटो प्रीमियम 9 | * माइक्रोसॉफ्ट पिक्चर इट! फोटो प्रीमियम 9 | ||
खराब संपीड़न पीएनजी फ़ाइल के आकार को बढ़ाता है लेकिन अन्य कार्यक्रमों के साथ फ़ाइल की छवि गुणवत्ता या संगतता को प्रभावित नहीं करता है। | खराब संपीड़न पीएनजी फ़ाइल के आकार को बढ़ाता है लेकिन अन्य कार्यक्रमों के साथ फ़ाइल की छवि गुणवत्ता या संगतता को प्रभावित नहीं करता है। | ||
| Line 557: | Line 548: | ||
* [[pngcrush]] लोकप्रिय PNG ऑप्टिमाइज़र में सबसे पुराना है। यह फ़िल्टर चयन और संपीड़न तर्कों पर कई परीक्षणों की अनुमति देता है, और अंत में सबसे छोटा चुनता है। लगभग हर png ऑप्टिमाइज़र में इस वर्किंग मॉडल का इस्तेमाल किया जाता है। | * [[pngcrush]] लोकप्रिय PNG ऑप्टिमाइज़र में सबसे पुराना है। यह फ़िल्टर चयन और संपीड़न तर्कों पर कई परीक्षणों की अनुमति देता है, और अंत में सबसे छोटा चुनता है। लगभग हर png ऑप्टिमाइज़र में इस वर्किंग मॉडल का इस्तेमाल किया जाता है। | ||
* advpng और इसी तरह की advdef उपयोगिता AdvanceCOMP पैकेज में PNG IDAT को पुनः संपीड़ित करती है। चयनित संपीड़न स्तर, गति और फ़ाइल आकार के बीच व्यापार के आधार पर विभिन्न डिफलेट कार्यान्वयन लागू होते हैं: स्तर 1 पर zlib, स्तर 2 पर libdeflate, स्तर 3 पर [[7-ज़िप]] का [[LZMA]] DEFLATE, और स्तर 4 पर zopfli। | * advpng और इसी तरह की advdef उपयोगिता AdvanceCOMP पैकेज में PNG IDAT को पुनः संपीड़ित करती है। चयनित संपीड़न स्तर, गति और फ़ाइल आकार के बीच व्यापार के आधार पर विभिन्न डिफलेट कार्यान्वयन लागू होते हैं: स्तर 1 पर zlib, स्तर 2 पर libdeflate, स्तर 3 पर [[7-ज़िप]] का [[LZMA]] DEFLATE, और स्तर 4 पर zopfli। | ||
* [[pngout]] को लेखक के अपने डिफ्लेटर (लेखक की ज़िप उपयोगिता, kzip के समान) के साथ बनाया गया था, जबकि रंग में कमी/फ़िल्टरिंग की सभी सुविधाओं को ध्यान में रखा गया था। हालाँकि, pngout एक बार में फ़िल्टर पर कई परीक्षणों का उपयोग करने की अनुमति नहीं देता है। इसके वाणिज्यिक जीयूआई संस्करण, पीएनजीआउटविन का उपयोग करने का सुझाव दिया गया है, या परीक्षणों को स्वचालित करने के लिए #रैपर टूल के साथ प्रयोग किया जाता है या फ़िल्टर लाइन को लाइन से रखते हुए अपने स्वयं के डिफ्लेटर का उपयोग करके पुनःसंपीड़ित किया जाता है। | * [[pngout]] को लेखक के अपने डिफ्लेटर (लेखक की ज़िप उपयोगिता, kzip के समान) के साथ बनाया गया था, जबकि रंग में कमी/फ़िल्टरिंग की सभी सुविधाओं को ध्यान में रखा गया था। हालाँकि, pngout एक बार में फ़िल्टर पर कई परीक्षणों का उपयोग करने की अनुमति नहीं देता है। इसके वाणिज्यिक जीयूआई संस्करण, पीएनजीआउटविन का उपयोग करने का सुझाव दिया गया है, या परीक्षणों को स्वचालित करने के लिए #रैपर टूल के साथ प्रयोग किया जाता है या फ़िल्टर लाइन को लाइन से रखते हुए अपने स्वयं के डिफ्लेटर का उपयोग करके पुनःसंपीड़ित किया जाता है। | ||
* Zopflipng भी एक स्व-अपस्फीतिकारक, Zopfli के साथ बनाया गया था। इसमें सभी अनुकूलन विशेषताएं हैं pngcrush में (स्वचालित परीक्षणों सहित) एक बहुत अच्छा, लेकिन धीमा डिफ्लेटर प्रदान करते हुए। | * Zopflipng भी एक स्व-अपस्फीतिकारक, Zopfli के साथ बनाया गया था। इसमें सभी अनुकूलन विशेषताएं हैं pngcrush में (स्वचालित परीक्षणों सहित) एक बहुत अच्छा, लेकिन धीमा डिफ्लेटर प्रदान करते हुए। | ||
| Line 571: | Line 562: | ||
| [[pngcrush]]|| Yes|| Yes|| 0–4 or adaptive|| No|| Yes|| zlib | | [[pngcrush]]|| Yes|| Yes|| 0–4 or adaptive|| No|| Yes|| zlib | ||
|- | |- | ||
| [[pngout]]|| Yes|| Yes|| 0–4 or adaptive|| Yes<ref name="pngoutreusefilter" group="note"/>|| No|| kzip | | [[pngout]]|| Yes|| Yes|| 0–4 or adaptive|| Yes<ref name="pngoutreusefilter" group="note">Use pngout -f6 to reuse previous filter set</ref>|| No|| kzip | ||
|- | |- | ||
| [[zopfli]]png|| Yes|| Yes|| 0–4 or adaptive with 2 different algorithms, or with a brute way|| Yes|| Yes|| zopfli | | [[zopfli]]png|| Yes|| Yes|| 0–4 or adaptive with 2 different algorithms, or with a brute way|| Yes|| Yes|| zopfli | ||
| Line 581: | Line 572: | ||
<code>pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB ''InputFile.png'' ''OutputFile.png''</code> | <code>pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB ''InputFile.png'' ''OutputFile.png''</code> | ||
==== फ़िल्टर अनुकूलन ==== | ==== फ़िल्टर अनुकूलन ==== | ||
pngcrush, pngout, और zopflipng सभी ऑफ़र विकल्प वैश्विक स्तर पर 0–4 फ़िल्टर प्रकारों में से किसी एक को लागू करते हैं (सभी पंक्तियों के लिए समान फ़िल्टर प्रकार का उपयोग करके) या एक छद्म फ़िल्टर (क्रमांकित 5) के साथ, जो प्रत्येक पंक्ति के लिए फ़िल्टर प्रकारों में से एक को चुनता है 0 -4 एक अनुकूली एल्गोरिथ्म का उपयोग करना। Zopflipng 3 अलग-अलग अनुकूली विधि प्रदान करता है, जिसमें ब्रूट-फोर्स सर्च शामिल है जो फ़िल्टरिंग को अनुकूलित करने का प्रयास करता है। | pngcrush, pngout, और zopflipng सभी ऑफ़र विकल्प वैश्विक स्तर पर 0–4 फ़िल्टर प्रकारों में से किसी एक को लागू करते हैं (सभी पंक्तियों के लिए समान फ़िल्टर प्रकार का उपयोग करके) या एक छद्म फ़िल्टर (क्रमांकित 5) के साथ, जो प्रत्येक पंक्ति के लिए फ़िल्टर प्रकारों में से एक को चुनता है 0 -4 एक अनुकूली एल्गोरिथ्म का उपयोग करना। Zopflipng 3 अलग-अलग अनुकूली विधि प्रदान करता है, जिसमें ब्रूट-फोर्स सर्च शामिल है जो फ़िल्टरिंग को अनुकूलित करने का प्रयास करता है। | ||
pngout और zopflipng संरक्षित/पुन: उपयोग करने का विकल्प प्रदान करते हैं | pngout और zopflipng संरक्षित/पुन: उपयोग करने का विकल्प प्रदान करते हैं इनपुट इमेज में मौजूद लाइन-बाय-लाइन फ़िल्टर सेट। | ||
pngcrush और zopflipng एक ही बार में विभिन्न फ़िल्टर रणनीतियों को आज़माने और सर्वश्रेष्ठ चुनने के विकल्प प्रदान करते हैं। pngout का फ्रीवेयर कमांड लाइन संस्करण इसकी पेशकश नहीं करता है, लेकिन व्यावसायिक संस्करण, pngoutwin, करता है। | |||
==== डिफ्लेट ऑप्टिमाइज़ेशन ==== | ==== डिफ्लेट ऑप्टिमाइज़ेशन ==== | ||
Zopfli और 7zip#Software development किट DEFLATE कार्यान्वयन प्रदान करते हैं जो प्रदर्शन की कीमत पर zlib संदर्भ कार्यान्वयन की तुलना में उच्च [[डेटा संपीड़न अनुपात]] उत्पन्न कर सकते हैं। एडवांसकॉम्प्स <code>advpng</code> और <code>advdef</code> PNG फ़ाइलों को फिर से कंप्रेस करने के लिए इनमें से किसी भी लाइब्रेरी का उपयोग कर सकते हैं। इसके अतिरिक्त, पीएनजीओयूटी में अपना स्वामित्व सॉफ्टवेयर डिफलेट कार्यान्वयन शामिल है। | Zopfli और 7zip#Software development किट DEFLATE कार्यान्वयन प्रदान करते हैं जो प्रदर्शन की कीमत पर zlib संदर्भ कार्यान्वयन की तुलना में उच्च [[डेटा संपीड़न अनुपात]] उत्पन्न कर सकते हैं। एडवांसकॉम्प्स <code>advpng</code> और <code>advdef</code> PNG फ़ाइलों को फिर से कंप्रेस करने के लिए इनमें से किसी भी लाइब्रेरी का उपयोग कर सकते हैं। इसके अतिरिक्त, पीएनजीओयूटी में अपना स्वामित्व सॉफ्टवेयर डिफलेट कार्यान्वयन शामिल है। | ||
| Line 598: | Line 585: | ||
चूंकि विंडोज विस्टा और बाद के संस्करणों के लिए लक्षित [[आइकन (कंप्यूटिंग)]] में पीएनजी सबइमेज हो सकते हैं, इसलिए अनुकूलन उन पर भी लागू किया जा सकता है। कम से कम एक आइकन (कंप्यूटिंग), Pixelformer, ICO (फ़ाइल स्वरूप) फ़ाइलों को सहेजते हुए एक विशेष अनुकूलन पास करने में सक्षम है, जिससे उनका आकार कम हो जाता है। [[FileOptimizer]] (ऊपर उल्लिखित) ICO फ़ाइलों को भी संभाल सकता है। | चूंकि विंडोज विस्टा और बाद के संस्करणों के लिए लक्षित [[आइकन (कंप्यूटिंग)]] में पीएनजी सबइमेज हो सकते हैं, इसलिए अनुकूलन उन पर भी लागू किया जा सकता है। कम से कम एक आइकन (कंप्यूटिंग), Pixelformer, ICO (फ़ाइल स्वरूप) फ़ाइलों को सहेजते हुए एक विशेष अनुकूलन पास करने में सक्षम है, जिससे उनका आकार कम हो जाता है। [[FileOptimizer]] (ऊपर उल्लिखित) ICO फ़ाइलों को भी संभाल सकता है। | ||
Apple Icon छवि प्रारूप में PNG सबइमेज भी हो सकते हैं, फिर भी ऐसा कोई उपकरण उपलब्ध नहीं है। | Apple Icon छवि प्रारूप में PNG सबइमेज भी हो सकते हैं, फिर भी ऐसा कोई उपकरण उपलब्ध नहीं है। | ||
== यह भी देखें == | == यह भी देखें == | ||
| Line 639: | Line 626: | ||
{{Graphics file formats}} | {{Graphics file formats}} | ||
{{Compression formats}} | {{Compression formats}} | ||
[[Category: पोर्टेबल नेटवर्क ग्राफिक्स | पोर्टेबल नेटवर्क ग्राफिक्स ]] [[Category: 1996 में कंप्यूटर से संबंधित परिचय]] [[Category: ग्राफिक्स मानक]] [[Category: छवि संपीड़न]] [[Category: आईएसओ मानक]] [[Category: खुले प्रारूप]] [[Category: रेखापुंज ग्राफिक्स फ़ाइल स्वरूप]] [[Category: वर्ल्ड वाइड वेब कंसोर्टियम मानक]] | [[Category: पोर्टेबल नेटवर्क ग्राफिक्स | पोर्टेबल नेटवर्क ग्राफिक्स ]] [[Category: 1996 में कंप्यूटर से संबंधित परिचय]] [[Category: ग्राफिक्स मानक]] [[Category: छवि संपीड़न]] [[Category: आईएसओ मानक]] [[Category: खुले प्रारूप]] [[Category: रेखापुंज ग्राफिक्स फ़ाइल स्वरूप]] [[Category: वर्ल्ड वाइड वेब कंसोर्टियम मानक]] | ||
Revision as of 00:38, 2 March 2023
A PNG image with an 8-bit transparency channel, overlaid onto a checkered background, typically used in graphics software to indicate transparency | |
| Filename extension |
.png |
|---|---|
| Internet media type |
image/png |
| Type code | PNGf PNG |
| Uniform Type Identifier (UTI) | public.png |
| UTI conformation | public.image |
| Magic number | 89 50 4e 47 0d 0a 1a 0a (8 bytes Hexadecimal) |
| Developed by | PNG Development Group (donated to W3C) |
| Initial release | 1 October 1996 |
| Type of format | Lossless bitmap image format |
| Extended to | APNG, JNG and MNG |
| Standard | ISO/IEC 15948,[1] IETF RFC 2083 |
| Open format? | Yes |
| Website | http://www.libpng.org/pub/png/ |
पोर्टेबल नेटवर्क ग्राफिक्स (पीएनजी, आधिकारिक तौर पर उच्चारित /pɪŋ/[2][3] PING, बोलचाल की भाषा में उच्चारित /ˌpiːɛnˈdʒiː/[4] PEE-en-JEE) एक रेखापुंज ग्राफिक्स|रेखापुंज-ग्राफिक्स फ़ाइल ग्राफिक्स फ़ाइल प्रारूप है जो दोषरहित डेटा संपीड़न का समर्थन करता है।[5] PNG को ग्राफिक्स बदलाव प्रारूप (GIF) के लिए एक बेहतर, गैर-पेटेंट प्रतिस्थापन के रूप में विकसित किया गया था - अनौपचारिक रूप से, प्रारंभिक PNG पुनरावर्ती परिवर्णी शब्द PNG's not GIF के लिए खड़ा था।[6]
पीएनजी पैलेट-आधारित छवियों (24-बिट आरजीबी रंग मॉडल या 32-बिट [[आरजीबीए रंगीन स्थान ]] रंगों के पैलेट के साथ), ग्रेस्केल छवियों (पारदर्शिता के लिए अल्फा संयोजन के साथ या बिना), और पूर्ण-रंग गैर-पैलेट-आधारित आरजीबी या आरजीबीए छवियां। पीएनजी कार्य समूह ने इंटरनेट पर छवियों को स्थानांतरित करने के लिए प्रारूप तैयार किया, पेशेवर-गुणवत्ता वाले प्रिंट ग्राफिक्स के लिए नहीं; इसलिए गैर-आरजीबी रंग स्थान जैसे कि सीएमवाईके रंग मॉडल समर्थित नहीं हैं। एक PNG फ़ाइल में विखंडू की एक विस्तृत संरचना में एक एकल छवि होती है, मूल पिक्सेल को एन्कोडिंग और अन्य जानकारी जैसे कि पाठ्य टिप्पणियाँ और 2083 के लिए अनुरोध में दर्ज की गई अखंडता जांचकर्ता।[7]
PNG फाइलें फाइल एक्सटेंशन का उपयोग करती हैं PNG या png और MIME प्रकार का मीडिया प्रकार असाइन किया गया है image/png.[8]
पीएनजी को मार्च 1997 में टिप्पणियों के लिए अनुरोध#सूचनात्मक RFC 2083 के रूप में और 2004 में ISO/IEC 15948 मानक के रूप में प्रकाशित किया गया था।[1]
इतिहास और विकास
पीएनजी प्रारूप बनाने के लिए प्रेरणा यह अहसास था कि, 28 दिसंबर 1994 को, ग्राफिक्स इंटरचेंज फॉर्मेट (जीआईएफ) प्रारूप में उपयोग किए जाने वाले लेम्पेल-ज़िव-वेल्च (एलजेडडब्लू) डेटा संपीड़न एल्गोरिदम को यूनिसिस द्वारा पेटेंट कराया गया था। पेटेंट के लिए आवश्यक था कि जीआईएफ का समर्थन करने वाले सभी सॉफ्टवेयर रॉयल्टी का भुगतान करें, जिससे यूज़नेट उपयोगकर्ताओं की आलोचनाओं की झड़ी लग गई। उनमें से एक थॉमस बाउटल थे, जिन्होंने 4 जनवरी 1995 को यूज़नेट समाचार समूह कॉम्प.ग्राफिक्स पर एक प्रारंभिक चर्चा सूत्र पोस्ट किया जिसमें उन्होंने जीआईएफ के मुफ्त विकल्प के लिए एक योजना तैयार की। उस थ्रेड के अन्य उपयोगकर्ताओं ने कई प्रस्ताव प्रस्तुत किए जो बाद में अंतिम फ़ाइल स्वरूप का हिस्सा बनेंगे। लोकप्रिय जेपीईजी दर्शक क्यूपीईजी के लेखक ओलिवर फ्रॉम ने पिंग नाम प्रस्तावित किया, अंततः पीएनजी बन गया, एक पुनरावर्ती संक्षिप्त नाम जिसका अर्थ है पिंग जीआईएफ नहीं है,[9] और भी .png फ़ाइल नाम एक्सटेंशन। बाद में लागू किए गए अन्य सुझावों में हवा निकालना और कलर डेप्थ#ट्रू कलर (24-बिट)|24-बिट कलर सपोर्ट शामिल हैं, जीआईएफ में बाद वाले की कमी भी टीम को अपना फ़ाइल प्रारूप बनाने के लिए प्रेरित करती है। समूह को पीएनजी डेवलपमेंट ग्रुप के रूप में जाना जाएगा, और जैसे-जैसे चर्चा तेजी से बढ़ी, इसने बाद में एक कॉम्प्यूसर्व फोरम से जुड़ी एक मेलिंग सूची का उपयोग किया।[2][10]
पीएनजी का पूर्ण विनिर्देश 1 अक्टूबर 1996 को वर्ल्ड वाइड वेब कंसोर्टियम के अनुमोदन के तहत जारी किया गया था, और बाद में 15 जनवरी 1997 को टिप्पणियों के लिए अनुरोध 2083 के रूप में जारी किया गया था। विनिर्देश को 31 दिसंबर 1998 को संस्करण 1.1 के रूप में संशोधित किया गया था, जिसने गामा के लिए तकनीकी समस्याओं को संबोधित किया था। सुधार और रंग सुधार। संस्करण 1.2, 11 अगस्त 1999 को जारी किया गया iTXt चंक विनिर्देश के एकमात्र परिवर्तन के रूप में, और 1.2 का एक सुधारित संस्करण 10 नवंबर 2003 को W3C मानक के दूसरे संस्करण के रूप में जारी किया गया था,[11]और एक अंतर्राष्ट्रीय मानक के रूप में (ISO/IEC 15948:2004) 3 मार्च 2004 को।[12][1]
हालांकि जीआईएफ कंप्यूटर एनीमेशन के लिए अनुमति देता है, यह निर्णय लिया गया कि पीएनजी एकल-छवि प्रारूप होना चाहिए।[13] 2001 में, पीएनजी के डेवलपर्स ने एनीमेशन के समर्थन के साथ एकाधिक छवि नेटवर्क ग्राफिक्स (एमएनजी) प्रारूप प्रकाशित किया। MNG ने मध्यम एप्लिकेशन समर्थन प्राप्त किया, लेकिन मुख्यधारा के वेब ब्राउज़रों के बीच पर्याप्त नहीं था और वेब साइट डिजाइनरों या प्रकाशकों के बीच इसका कोई उपयोग नहीं था। 2008 में, कुछ mozilla डेवलपर्स ने समान लक्ष्यों के साथ एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स (एपीएनजी) प्रारूप प्रकाशित किया। एपीएनजी एक ऐसा प्रारूप है जो मूल रूप से छिपकली (सॉफ्टवेयर) - और प्रेस्टो (ब्राउज़र इंजन) -आधारित वेब ब्राउज़र द्वारा समर्थित है और आमतौर पर सोनी के प्लेस्टेशन पोर्टेबल सिस्टम (सामान्य पीएनजी फ़ाइल एक्सटेंशन का उपयोग करके) पर थंबनेल के लिए भी उपयोग किया जाता है। 2017 में, क्रोमियम आधारित ब्राउज़रों ने APNG समर्थन को अपनाया। जनवरी 2020 में, Microsoft एज क्रोमियम (वेब ब्राउज़र) आधारित बन गया, इस प्रकार APNG के लिए समर्थन विरासत में मिला। इसके साथ सभी प्रमुख ब्राउज़र अब APNG को सपोर्ट करते हैं।
पीएनजी वर्किंग ग्रुप
मूल पीएनजी विनिर्देश कंप्यूटर चित्रलेख विशेषज्ञों और उत्साही लोगों के एक तदर्थ समूह द्वारा लिखा गया था। प्रारूप के बारे में चर्चा और निर्णय ईमेल द्वारा आयोजित किए गए। RFC 2083 में सूचीबद्ध मूल लेखक हैं:[14]
- संपादक: थॉमस बाउटेल
- योगदान संपादक: टॉम लेन (कंप्यूटर वैज्ञानिक)
- लेखक (अंतिम नाम से वर्णानुक्रम में): मार्क एडलर, थॉमस बाउटल, क्रिश्चियन ब्रंसचेन, एडम एम। कोस्टेलो, ली डेनियल क्रोकर, एंड्रियास डिल्गर, ओलिवर फ्रॉम, जीन-लूप गेल्ली , क्रिस हर्बर्थ, अलेक्स जकुलीन, नील केटलर, टॉम लेन (कंप्यूटर वैज्ञानिक), अलेक्जेंडर लेहमैन, क्रिस लिली (कंप्यूटर वैज्ञानिक), डेव मार्टिंडेल, ओवेन मोर्टेंसन, कीथ एस. पिकेंस, रॉबर्ट पी. पूले, ग्लेन रैंडर्स-पेहरसन, ग्रेग रोएलोफ्स , विलेम वैन शाइक, गाइ शल्नाट, पॉल श्मिट (कंप्यूटर प्रोग्रामर), टिम वेगनर, जेरेमी वोहल
फ़ाइल प्रारूप
[[File:PNG-Gradient hex.png|thumb|The PNG image [[File:PNG-Gradient.png|30pxउबंटू ओएस के लिए एक हेक्स संपादक एप्लिकेशन के साथ देखा गया।]]
फाइल हेडर
PNG फाइल 8-बाइट बाइनरी हस्ताक्षर से शुरू होती है[15] (दाईं ओर हेक्स संपादक छवि देखें):
| Values (hex) | Purpose |
|---|---|
89
|
Has the high bit set to detect transmission systems that do not support 8-bit data and to reduce the chance that a text file is mistakenly interpreted as a PNG, or vice versa. |
50 4E 47
|
In ASCII, the letters PNG, allowing a person to identify the format easily if it is viewed in a text editor. |
0D 0A
|
A DOS-style line ending (CRLF) to detect DOS-Unix line ending conversion of the data. |
1A
|
A byte that stops display of the file under DOS when the command type has been used—the end-of-file character. |
0A
|
A Unix-style line ending (LF) to detect Unix-DOS line ending conversion. |
फ़ाइल के भीतर हिस्सा
हेडर के बाद, चंक (सूचना) की एक श्रृंखला आती है,[16] जिनमें से प्रत्येक छवि के बारे में कुछ जानकारी बताता है। हिस्सा खुद को महत्वपूर्ण या सहायक के रूप में घोषित करता है, और एक सहायक खंड का सामना करने वाला एक कार्यक्रम जो इसे समझ में नहीं आता है, इसे सुरक्षित रूप से अनदेखा कर सकता है। यह चंक-आधारित भंडारण परत संरचना, एक कंटेनर प्रारूप (डिजिटल) या अमिगा की अवधारणा के समान है's इंटरचेंज फ़ाइल स्वरूप, पुराने संस्करणों के साथ संगतता बनाए रखते हुए PNG प्रारूप को विस्तारित करने की अनुमति देने के लिए डिज़ाइन किया गया है—यह आगे की संगतता प्रदान करता है, और संबंधित MNG, जेपीईजी नेटवर्क ग्राफिक्स में इसी फ़ाइल संरचना (विभिन्न हस्ताक्षर और टुकड़ों के साथ) का उपयोग किया जाता है , और एपीएनजी प्रारूप।
एक चंक में चार भाग होते हैं: लंबाई (4 बाइट्स,[17] एंडियननेस # बिग-एंडियन | बिग-एंडियन), चंक प्रकार / नाम (4 बाइट्स[18]), चंक डेटा (लंबाई बाइट्स) और चक्रीय अतिरेक जाँच (चक्रीय अतिरेक कोड/चेकसम; 4 बाइट्स[17]). CRC चक्रीय अतिरेक जाँचों का एक नेटवर्क-बाइट-ऑर्डर संगणना है। CRC-32 की गणना चंक प्रकार और चंक डेटा पर की जाती है, लेकिन लंबाई पर नहीं।
| Length | Chunk type | Chunk data | CRC |
|---|---|---|---|
| 4 bytes | 4 bytes | Length bytes | 4 bytes |
चंक प्रकारों को एक चार-अक्षर केस संवेदनशीलता ASCII प्रकार/नाम दिया जाता है; फोरसीसी की तुलना करें। नाम में विभिन्न अक्षरों का मामला (चरित्र के संख्यात्मक मान का बिट 5) एक बिट फ़ील्ड है जो कोडेक को उन टुकड़ों की प्रकृति पर कुछ जानकारी प्रदान करता है जिन्हें वह नहीं पहचानता है।
पहले अक्षर का केस बताता है कि चंक क्रिटिकल है या नहीं। यदि पहला अक्षर अपरकेस है, तो चंक महत्वपूर्ण है; यदि नहीं, तो चंक सहायक है। क्रिटिकल चंक्स में वह जानकारी होती है जो फ़ाइल को पढ़ने के लिए आवश्यक होती है। यदि एक डिकोडर एक महत्वपूर्ण खंड का सामना करता है जिसे वह पहचान नहीं पाता है, तो उसे फ़ाइल को पढ़ना बंद करना होगा या उपयोगकर्ता को उचित चेतावनी देनी होगी।
दूसरे पत्र का मामला इंगित करता है कि खंड सार्वजनिक है (या तो विनिर्देश में या विशेष प्रयोजन के सार्वजनिक भाग की रजिस्ट्री में) या निजी (मानकीकृत नहीं)। अपरकेस सार्वजनिक है और लोअरकेस निजी है। यह सुनिश्चित करता है कि सार्वजनिक और निजी चंक नाम कभी भी एक-दूसरे के साथ संघर्ष नहीं कर सकते (हालाँकि दो निजी चंक नाम परस्पर विरोधी हो सकते हैं)।
तीसरा अक्षर PNG विशिष्टता के अनुरूप होने के लिए अपरकेस होना चाहिए। यह भविष्य के विस्तार के लिए आरक्षित है। डिकोडर्स को एक चंक को लोअर केस थर्ड लेटर के साथ किसी भी अन्य गैर-मान्यता प्राप्त चंक के समान व्यवहार करना चाहिए।
चौथे अक्षर का मामला इंगित करता है कि क्या चंक उन संपादकों द्वारा कॉपी करने के लिए सुरक्षित है जो इसे नहीं पहचानते हैं। यदि लोअरकेस है, तो चंक को फ़ाइल में संशोधनों की सीमा की परवाह किए बिना सुरक्षित रूप से कॉपी किया जा सकता है। यदि अपरकेस है, तो इसे केवल तभी कॉपी किया जा सकता है जब संशोधनों ने किसी भी महत्वपूर्ण हिस्से को नहीं छुआ हो।
गंभीर हिस्सा
डिकोडर को पीएनजी फ़ाइल को पढ़ने और प्रस्तुत करने के लिए महत्वपूर्ण हिस्सों की व्याख्या करने में सक्षम होना चाहिए।
IHDRपहला हिस्सा होना चाहिए; इसमें (इस क्रम में) छवि शामिल है- चौड़ाई (4 बाइट्स)
- ऊंचाई (4 बाइट्स)
- बिट गहराई (1 बाइट, मान 1, 2, 4, 8, या 16)
- रंग प्रकार (1 बाइट, मान 0, 2, 3, 4, या 6)
- संपीड़न विधि (1 बाइट, मान 0)
- फ़िल्टर विधि (1 बाइट, मान 0)
- इंटरलेस मेथड (1 बाइट, वैल्यू 0 नो इंटरलेस या 1 एडम7 इंटरलेस) (कुल 13 डेटा बाइट्स)।[11]
जैसा कि वर्ल्ड वाइड वेब कंसोर्टियम में कहा गया है, बिट डेप्थ को प्रति सैंपल या प्रति पैलेट इंडेक्स (प्रति पिक्सेल नहीं) बिट्स की संख्या के रूप में परिभाषित किया गया है।[11]* PLTE पैलेट (कंप्यूटिंग) शामिल है: रंगों की एक सूची।
IDATछवि शामिल है, जिसे कई आईडीएटी हिस्सों में विभाजित किया जा सकता है। इस तरह के बंटवारे से फाइल का आकार थोड़ा बढ़ जाता है, लेकिन स्ट्रीमिंग तरीके से पीएनजी उत्पन्न करना संभव हो जाता है। आईडीएटी खंड में वास्तविक छवि डेटा होता है, जो संपीड़न एल्गोरिदम का आउटपुट स्ट्रीम होता है।[19]IENDछवि के अंत को चिह्नित करता है; IEND चंक के डेटा फ़ील्ड में 0 बाइट्स हैं/खाली है।[20]PLTEई> हिस्सा रंग प्रकार 3 (अनुक्रमित रंग) के लिए आवश्यक है। यह रंग प्रकार 2 और 6 (अल्फ़ा के साथ ट्रूकलर और ट्रूकलर) के लिए वैकल्पिक है और यह रंग प्रकार 0 और 4 (ग्रेस्केल और अल्फ़ा के साथ ग्रेस्केल) के लिए प्रदर्शित नहीं होना चाहिए।
सहायक हिस्सा
अन्य छवि विशेषताएँ जिन्हें PNG फ़ाइलों में संग्रहीत किया जा सकता है, उनमें गामा सुधार मान, पृष्ठभूमि रंग और पाठ संबंधी मेटा डेटा जानकारी शामिल हैं। PNG, ICC प्रोफ़ाइल को शामिल करके रंग प्रबंधन का भी समर्थन करता है।[21]
bKGDडिफ़ॉल्ट पृष्ठभूमि रंग देता है। इसका उपयोग तब किया जाता है जब कोई बेहतर विकल्प उपलब्ध नहीं होता है, जैसे स्टैंडअलोन छवि दर्शकों में (लेकिन वेब ब्राउज़र नहीं; अधिक विवरण के लिए नीचे देखें)।cHRMप्रदर्शन प्राथमिक रंग और सफेद बिंदु के वार्णिकता निर्देशांक देता है।dSIGडिजिटल हस्ताक्षर संग्रहीत करने के लिए है।[22]eXIfExif मेटाडेटा स्टोर करता है।[23]gAMAगामा सुधार निर्दिष्ट करता है। गामा चंक में केवल 4 बाइट्स होते हैं, और इसका मान गामा मान को 100,000 से गुणा करता है; उदाहरण के लिए, गामा मान 1/3.4 29411.7647059 ((1/3.4)*(100,000)) की गणना करता है और भंडारण के लिए पूर्णांक (29412) में परिवर्तित हो जाता है।[24]hISTछवि में हिस्टोग्राम, या प्रत्येक रंग की कुल मात्रा को संग्रहीत कर सकता है।iCCPएक आईसीसी रंग प्रोफ़ाइल है।iTXtIETF भाषा टैग के साथ चिह्नित संभावित संपीड़न और अनुवाद के लिए एन्कोडिंग के साथ एक कीवर्ड और UTF-8 टेक्स्ट शामिल है। एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म (XMP) इस चंक का उपयोग कीवर्ड 'XML:com.adobe.xmp' के साथ करता हैpHYsइच्छित पिक्सेल आकार (या पिक्सेल पहलू अनुपात) रखता है; पीएचवाई में कुल 9 बाइट्स के लिए पिक्सेल प्रति यूनिट, एक्स अक्ष (4 बाइट्स), पिक्सेल प्रति यूनिट, वाई अक्ष (4 बाइट्स) और यूनिट स्पेसिफायर (1 बाइट) शामिल हैं।[25]sBIT(महत्वपूर्ण बिट्स) स्रोत डेटा के रंग-सटीकता को इंगित करता है; रंग के प्रकार के आधार पर इस चंक में कुल 1 से 5 बाइट्स होते हैं।[26][27][28]sPLTरंगों की पूरी श्रृंखला अनुपलब्ध होने पर उपयोग करने के लिए पैलेट का सुझाव देता है।sRGBइंगित करता है कि मानक sRGB रंग स्थान का उपयोग किया जाता है; sRGB चंक में केवल 1 बाइट होता है, जिसका उपयोग रेंडरिंग इंटेंट के लिए किया जाता है (4 मान—0, 1, 2, और 3—रेंडरिंग इंटेंट के लिए परिभाषित किए गए हैं)।[29]sTERत्रिविम इमेज के लिए स्टीरियो-इमेज इंडिकेटर चंक।[30]tEXtपाठ को संग्रहीत कर सकता है जिसे ISO/IEC 8859-1 में प्रदर्शित किया जा सकता है, प्रत्येक चंक के लिए एक विशेषता-मूल्य जोड़ी | कुंजी-मूल्य जोड़ी के साथ। कुंजी की लंबाई 1 से 79 वर्णों के बीच होनी चाहिए. विभाजक एक अशक्त वर्ण है। मान किसी भी लम्बाई का हो सकता है, जिसमें शून्य से अधिकतम अनुमेय चंक आकार माइनस कीवर्ड और विभाजक की लंबाई शामिल है। न तो कुंजी और न ही मान में अशक्त वर्ण हो सकते हैं। अग्रणी या अनुगामी रिक्त स्थान भी अस्वीकृत हैं।tIMEउस समय को संग्रहीत करता है जब छवि को अंतिम बार बदला गया था।tRNSपारदर्शिता जानकारी शामिल है। अनुक्रमित छवियों के लिए, यह एक या अधिक पैलेट प्रविष्टियों के लिए अल्फा चैनल मान संग्रहीत करता है। ट्रूकलर और ग्रेस्केल छवियों के लिए, यह एक एकल पिक्सेल मान संग्रहीत करता है जिसे पूरी तरह से पारदर्शी माना जाता है।zTXtसमान सीमाओं के साथ संपीड़ित पाठ (और एक संपीड़न विधि मार्कर) शामिल हैtEXt.
इन चंक्स में लोअरकेस का पहला अक्षर इंगित करता है कि PNG विनिर्देशन के लिए इनकी आवश्यकता नहीं है। कुछ हिस्सों में लोअरकेस का अंतिम अक्षर इंगित करता है कि वे कॉपी करने के लिए सुरक्षित हैं, भले ही संबंधित आवेदन उन्हें समझ न पाए।
पिक्सेल प्रारूप
| Color type | Channels | Bits per channel | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 4 | 8 | 16 | ||
| Indexed | 1 | 1 | 2 | 4 | 8 | |
| स्केल | 1 | 1 | 2 | 4 | 8 | 16 |
| ग्रेस्केल और अल्फा | 2 | 16 | 32 | |||
| असली रंग | 3 | 24 | 48 | |||
| ट्रूकलर और अल्फा | 4 | 32 | 64 | |||
पीएनजी छवियों में पिक्सेल संख्याएं होती हैं जो या तो पैलेट (कंप्यूटिंग) या स्वयं नमूना डेटा में नमूना डेटा के सूचकांक हो सकती हैं। पैलेट PLTE चंक में समाहित एक अलग तालिका है। एकल पिक्सेल के लिए नमूना डेटा में एक और चार संख्याओं के बीच का टपल होता है। चाहे पिक्सेल डेटा पैलेट इंडेक्स या स्पष्ट नमूना मूल्यों का प्रतिनिधित्व करता हो, संख्याओं को चैनल (डिजिटल छवि) के रूप में संदर्भित किया जाता है और छवि में प्रत्येक संख्या एक समान प्रारूप के साथ एन्कोड की जाती है।
स्वीकृत प्रारूप प्रत्येक संख्या को एक निश्चित संख्या में बिट्स का उपयोग करके एक अहस्ताक्षरित पूर्णांक मान के रूप में एन्कोड करता है, जिसे पीएनजी विनिर्देश में बिट गहराई के रूप में संदर्भित किया जाता है। ध्यान दें कि यह रंग की गहराई के समान नहीं है, जिसका उपयोग आमतौर पर प्रत्येक पिक्सेल में बिट्स की कुल संख्या को संदर्भित करने के लिए किया जाता है, न कि प्रत्येक चैनल को। प्रत्येक पिक्सेल के लिए उपयोग की जाने वाली बिट्स की कुल संख्या के साथ अनुमत बिट डेप्थ को तालिका में संक्षेपित किया गया है।
चैनलों की संख्या इस बात पर निर्भर करती है कि छवि ग्रेस्केल है या रंग और क्या इसमें अल्फा चैनल है। पीएनजी चैनलों के निम्नलिखित संयोजनों की अनुमति देता है, जिन्हें रंग प्रकार कहा जाता है।
| 0 (0002) | grayscale |
| 2 (0102) | red, green and blue: rgb/truecolor |
| 3 (0112) | indexed: channel containing indices into a palette of colors |
| 4 (1002) | grayscale and alpha: level of opacity for each pixel |
| 6 (1102) | red, green, blue and alpha |
रंग प्रकार को 8-बिट मान के रूप में निर्दिष्ट किया गया है, हालांकि केवल कम 3 बिट्स का उपयोग किया जाता है और फिर भी, ऊपर सूचीबद्ध केवल पांच संयोजनों की अनुमति है। जब तक रंग प्रकार मान्य है, तब तक इसे आसन्न तालिका में संक्षेपित बिट फ़ील्ड के रूप में माना जा सकता है:
| Color type |
Name | Binary | Masks | |||
|---|---|---|---|---|---|---|
| A | C | P | ||||
| 0 | Grayscale | 0 | 0 | 0 | 0 | |
| 2 | Truecolor | 0 | 0 | 1 | 0 | color |
| 3 | Indexed | 0 | 0 | 1 | 1 | color, palette |
| 4 | Grayscale and alpha | 0 | 1 | 0 | 0 | alpha |
| 6 | Truecolor and alpha | 0 | 1 | 1 | 0 | alpha, color |
- बिट वैल्यू 1: इमेज डेटा पैलेट इंडेक्स को स्टोर करता है। यह बिट मान 2 के संयोजन में ही मान्य है;
- बिट मान 2: छवि के नमूनों में डेटा एन्कोडिंग के तीन चैनल होते हैं जो ट्राइक्रोमेसी रंग होते हैं, अन्यथा छवि के नमूनों में डेटा एन्कोडिंग सापेक्ष ल्यूमिनेंस का एक चैनल होता है,
- बिट मान 4: छवि के नमूनों में एक अल्फा चैनल भी होता है जिसे पिक्सेल की अपारदर्शिता के रैखिक माप के रूप में व्यक्त किया जाता है। यह बिट मान 1 के संयोजन में मान्य नहीं है।
अनुक्रमित रंग छवियों के साथ, पैलेट हमेशा 8 बिट प्रति चैनल (24 बिट प्रति पैलेट प्रविष्टि) की गहराई पर ट्राइक्रोमैटिक रंगों को संग्रहीत करता है। इसके अतिरिक्त, पैलेट प्रविष्टियों के लिए 8-बिट अल्फा मानों की एक वैकल्पिक सूची शामिल की जा सकती है; यदि शामिल नहीं है, या यदि पैलेट से छोटा है, तो शेष पैलेट प्रविष्टियों को अपारदर्शी माना जाता है। पैलेट में छवि बिट गहराई की अनुमति से अधिक प्रविष्टियां नहीं होनी चाहिए, लेकिन इसमें कम हो सकती है (उदाहरण के लिए, यदि 8-बिट पिक्सेल वाली छवि केवल 90 रंगों का उपयोग करती है तो उसे सभी 256 रंगों के लिए पैलेट प्रविष्टियों की आवश्यकता नहीं होती है)। पैलेट में छवि में मौजूद सभी पिक्सेल मानों की प्रविष्टियाँ होनी चाहिए।
मानक अनुक्रमित रंग पीएनजी को प्रति पिक्सेल 1, 2, 4 या 8 बिट्स की अनुमति देता है; बिना अल्फा चैनल वाली ग्रेस्केल छवियों में प्रति पिक्सेल 1, 2, 4, 8 या 16 बिट हो सकते हैं। बाकी सब कुछ 8 या 16 के प्रति चैनल थोड़ी गहराई का उपयोग करता है। यह संयोजन जो अनुमति देता है वह ऊपर दी गई तालिका में दिया गया है। मानक के लिए आवश्यक है कि डिकोडर सभी समर्थित रंग स्वरूपों को पढ़ सकें, लेकिन कई छवि संपादक केवल उनमें से एक छोटा सा उपसमुच्चय ही बना सकते हैं।
छवि की पारदर्शिता
पीएनजी विभिन्न प्रकार के पारदर्शिता विकल्प प्रदान करता है। ट्रू-कलर और ग्रेस्केल छवियों के साथ या तो एक एकल पिक्सेल मान को पारदर्शी घोषित किया जा सकता है या एक अल्फा चैनल जोड़ा जा सकता है (आंशिक पारदर्शिता के किसी भी प्रतिशत का उपयोग करने के लिए सक्षम करना)। पैलेट की गई छवियों के लिए, पैलेट प्रविष्टियों में अल्फा मान जोड़े जा सकते हैं। संग्रहीत ऐसे मानों की संख्या पैलेट प्रविष्टियों की कुल संख्या से कम हो सकती है, इस मामले में शेष प्रविष्टियों को पूरी तरह से अपारदर्शी माना जाता है।
पिक्सल के अनजाने में पारदर्शी होने से बचने के लिए किसी भी रंग में कमी से पहले बाइनरी ट्रांसपेरेंसी के लिए पिक्सेल वैल्यू की स्कैनिंग की जानी चाहिए। यह उन प्रणालियों के लिए एक समस्या उत्पन्न करने की सबसे अधिक संभावना है जो 16-बिट्स-प्रति-चैनल छवियों को डिकोड कर सकते हैं (जैसा कि विनिर्देश के अनुपालन के लिए आवश्यक है) लेकिन केवल 8 बिट्स प्रति चैनल पर आउटपुट (उच्चतम अंत प्रणालियों के अलावा सभी के लिए मानक) .
अल्फ़ा संग्रहण संबद्ध (अल्फ़ा कंपोज़िटिंग) या असंबद्ध हो सकता है, लेकिन PNG मानकीकृत है[31] असम्बद्ध ( गैर-प्रीमिलीप्लाइड ) अल्फ़ा पर, जिसका अर्थ है कि इमेजरी अल्फ़ा एन्कोडेड नहीं है; आरजीबी में दर्शाए गए उत्सर्जन पिक्सेल स्तर पर उत्सर्जन नहीं हैं। इसका मतलब है कि ओवर ऑपरेशन आरजीबी उत्सर्जन को अल्फा से गुणा करेगा, और उत्सर्जन और रोड़ा का ठीक से प्रतिनिधित्व नहीं कर सकता है।
संपीड़न
पीएनजी 2-चरण संपीड़न प्रक्रिया का उपयोग करता है:
- पूर्व-संपीड़न: फ़िल्टरिंग (भविष्यवाणी)
- संपीड़न: अवहेलना
PNG DEFLATE का उपयोग करता है, एक गैर-पेटेंट दोषरहित डेटा संपीड़न कलन विधि जिसमें LZ77 और LZ78 और हफ़मैन कोडिंग का संयोजन शामिल है। अनुमेय सॉफ्टवेयर लाइसेंस DEFLATE कार्यान्वयन, जैसे कि zlib, व्यापक रूप से उपलब्ध हैं।
जेपीईजी जैसे हानिकारक संपीड़न वाले प्रारूपों की तुलना में, औसत विलंब प्रसंस्करण से अधिक संपीड़न सेटिंग चुनना, लेकिन अक्सर इसका परिणाम महत्वपूर्ण रूप से छोटे फ़ाइल आकार में नहीं होता है।
छानना
DEFLATE लागू होने से पहले, डेटा को एक भविष्यवाणी विधि के माध्यम से रूपांतरित किया जाता है: संपूर्ण छवि के लिए एक एकल फ़िल्टर विधि का उपयोग किया जाता है, जबकि प्रत्येक छवि रेखा के लिए, डेटा को अधिक कुशलता से संपीड़ित करने के लिए बदलने के लिए एक फ़िल्टर प्रकार चुना जाता है।[32] स्कैनलाइन के लिए उपयोग किए जाने वाले फ़िल्टर प्रकार को इनलाइन डीकंप्रेसन को सक्षम करने के लिए स्कैनलाइन से जोड़ा जाता है।
वर्तमान पीएनजी विनिर्देश (निरूपित विधि 0) में केवल एक फ़िल्टर विधि है, और इस प्रकार अभ्यास में केवल एक ही विकल्प है कि प्रत्येक पंक्ति पर कौन सा फ़िल्टर प्रकार लागू किया जाए। इस पद्धति के लिए, फ़िल्टर पिछले पड़ोसी पिक्सेल के मूल्यों के आधार पर प्रत्येक पिक्सेल के मूल्य की भविष्यवाणी करता है, और वास्तविक मूल्य से पिक्सेल के अनुमानित रंग को घटाता है, जैसा कि DPCM में है। इस तरह से फ़िल्टर की गई छवि रेखा अक्सर कच्ची छवि रेखा की तुलना में अधिक संकुचित होती है, खासकर यदि यह ऊपर की रेखा के समान होती है, क्योंकि भविष्यवाणी से अंतर आम तौर पर सभी संभावित छवि मूल्यों में फैलने के बजाय 0 के आसपास होता है। यह विशेष रूप से अलग-अलग पंक्तियों के संबंध में महत्वपूर्ण है, क्योंकि DEFLATE को यह समझ नहीं है कि एक छवि एक 2D इकाई है, और इसके बजाय केवल छवि डेटा को बाइट्स की धारा के रूप में देखता है।
फ़िल्टर विधि 0 के लिए पाँच फ़िल्टर प्रकार हैं; प्रत्येक प्रकार प्रत्येक बाइट के मूल्य की भविष्यवाणी करता है (फ़िल्टरिंग से पहले छवि डेटा का) पिक्सेल के बाईं ओर (ए), पिक्सेल के ऊपर (बी), और पिक्सेल के ऊपर और बाईं ओर (सी) या इसके कुछ संयोजन, और अनुमानित मूल्य और वास्तविक मूल्य के बीच अंतर को कूटबद्ध करता है। फ़िल्टर बाइट मानों पर लागू होते हैं, पिक्सेल पर नहीं; पिक्सेल मान एक या दो बाइट, या प्रति बाइट कई मान हो सकते हैं, लेकिन कभी भी बाइट सीमाओं को पार नहीं करते हैं। फ़िल्टर प्रकार हैं:[33]
| Type byte | Filter name | Predicted value |
|---|---|---|
| 0 | None | Zero (so that the raw byte value passes through unaltered) |
| 1 | Sub | Byte A (to the left) |
| 2 | Up | Byte B (above) |
| 3 | Average | Mean of bytes A and B, rounded down |
| 4 | Paeth | A, B, or C, whichever is closest to p = A + B − C |
Paeth फ़िल्टर एलन W. Paeth द्वारा एक एल्गोरिथम पर आधारित है।[34] दोषरहित JPEG में उपयोग किए गए DPCM के संस्करण की तुलना करें, और 1×2, 2×1, या (पेथ प्रेडिक्टर के लिए) 2×2 विंडो और उसकी तरंगिका ्स का उपयोग करके असतत वेवलेट ट्रांसफ़ॉर्म करें।
लाइन-बाय-लाइन आधार पर अनुकूली रूप से फ़िल्टर प्रकारों को चुनकर संपीड़न में और सुधार किया जाता है। यह सुधार, और आमतौर पर पीएनजी-लेखन सॉफ्टवेयर द्वारा उपयोग किए जाने वाले इसे लागू करने का एक अनुमानी तरीका, ली डेनियल क्रोकर द्वारा बनाया गया था, जिन्होंने प्रारूप के निर्माण के दौरान कई छवियों पर विधियों का परीक्षण किया था;[35] फ़िल्टर का चुनाव फ़ाइल आकार अनुकूलन का एक घटक है, जैसा कि नीचे चर्चा की गई है।
यदि इंटरलेसिंग का उपयोग किया जाता है, तो इंटरलेसिंग के प्रत्येक चरण को अलग से फ़िल्टर किया जाता है, जिसका अर्थ है कि प्रत्येक चरण प्राप्त होने पर छवि को उत्तरोत्तर रेंडर किया जा सकता है; हालाँकि, इंटरलेसिंग आमतौर पर संपीड़न को कम प्रभावी बनाता है।
इंटरलेसिंग
पीएनजी एक वैकल्पिक 2-आयामी, 7-पास इंटरलेसिंग (बिटमैप्स) योजना-एडम7 एल्गोरिथम प्रदान करता है। यह जीआईएफ की 1-आयामी, 4-पास योजना की तुलना में अधिक परिष्कृत है, और एक स्पष्ट कम-रिज़ॉल्यूशन छवि को स्थानांतरण में पहले दिखाई देने की अनुमति देता है, खासकर अगर इंटरपोलेशन एल्गोरिदम जैसे बाइबिक इंटरपोलेशन का उपयोग किया जाता है।[36]
हालाँकि, 7-पास योजना सरल योजनाओं की तुलना में डेटा की संपीड्यता को कम करती है।
एनिमेशन
पीएनजी स्वयं एनीमेशन का समर्थन नहीं करता है। बहु-छवि नेटवर्क ग्राफ़िक्स पीएनजी का एक विस्तार है जो करता है; इसे पीएनजी समूह के सदस्यों द्वारा डिजाइन किया गया था। एमएनजी पीएनजी की मूल संरचना और भाग साझा करता है, लेकिन यह काफी अधिक जटिल है और इसमें एक अलग फ़ाइल हस्ताक्षर है, जो स्वचालित रूप से इसे मानक पीएनजी डिकोडर्स के साथ असंगत बना देता है। इसका अर्थ है कि अधिकांश वेब ब्राउज़र और एप्लिकेशन ने या तो कभी MNG का समर्थन नहीं किया या इसके लिए समर्थन छोड़ दिया।
MNG की जटिलता ने Mozilla Foundation के डेवलपर्स द्वारा APNG के प्रस्ताव का नेतृत्व किया। यह पीएनजी पर आधारित है, एनीमेशन का समर्थन करता है और एमएनजी से सरल है। APNG, APNG का समर्थन नहीं करने वाले PNG डिकोडर्स के लिए सिंगल-इमेज डिस्प्ले पर फ़ॉलबैक ऑफ़र करता है। आज, APNG प्रारूप सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है।[37] APNG मोज़िला फ़ायरफ़ॉक्स 3.0 और ऊपर, पेल मून (वेब ब्राउज़र) (सभी संस्करण), और सफारी (वेब ब्राउज़र) 8.0 और ऊपर समर्थित है।[38] क्रोमियम 59.0 ने APNG समर्थन जोड़ा,[39][40] इसके बाद गूगल क्रोम आता है। ओपेरा (वेब ब्राउज़र) ने संस्करण 10-12.1 में APNG का समर्थन किया, लेकिन संस्करण 15 में समर्थन समाप्त हो गया जब यह ब्लिंक (ब्राउज़र इंजन) रेंडरिंग इंजन में बदल गया; समर्थन ओपेरा 46 (क्रोमियम 59 से विरासत में मिला) में फिर से जोड़ा गया था।[41] माइक्रोसॉफ्ट एज ने एपीएनजी संस्करण 79.0 के बाद से समर्थन किया है, जब यह क्रोमियम-आधारित इंजन पर स्विच किया गया था।
पीएनजी ग्रुप ने अप्रैल 2007 में एपीएनजी को गले लगाने का फैसला नहीं किया।[42] कई विकल्पों पर चर्चा चल रही थी, जिनमें ANG, aNIM/mPNG, GIF में PNG और GIF में इसका सबसेट RGBA शामिल है।[43] हालाँकि, वर्तमान में केवल APNG को व्यापक समर्थन प्राप्त है।
उदाहरण
89 50 4E 47 0D 0A 1A 0APNG signature |
IHDRImage header |
IDATImage data |
IENDImage end |
| Hex | As characters |
|---|---|
|
89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 |
.PNG........IHDR |
| Offset into chunk | Hex Value | Decimal Value | Text | Meaning |
|---|---|---|---|---|
| 0 | 0x0D | 13 | IHDR chunk has 13 bytes of content | |
| 4 | 0x49484452 | IHDR | Identifies a Header chunk | |
| 8 | 0x01 | 1 | Image is 1 pixel wide | |
| 12 | 0x01 | 1 | Image is 1 pixel high | |
| 16 | 0x08 | 8 | 8 bits per pixel (per channel) | |
| 17 | 0x02 | 2 | Color type 2 (RGB/truecolor) | |
| 18 | 0x00 | 0 | Compression method 0 (only accepted value) | |
| 19 | 0x00 | 0 | Filter method 0 (only accepted value) | |
| 20 | 0x00 | 0 | Not interlaced | |
| 21 | 0x907753DE | CRC of chunk's type and content (but not length) |
| Offset into chunk | Hex Value | Meaning |
|---|---|---|
| 0 | 0x10 | IDAT chunk has 16 bytes of content |
| 4 | 0x49444154 | Identifies a Data chunk |
| 8 | 0x08 | DEFLATE compression method using a 256-byte window[44] |
| 9 | 0xD7 | ZLIB FCHECK value, no dictionary used, maximum compression algorithm[44] |
| 10 | 0x63F8CFC00000 | A compressed DEFLATE block using the static Huffman code that decodes to 0x00 0xFF 0x00 0x00[45] |
| 16 | 0x03010100 | The ZLIB check value: the Adler32 checksum of the uncompressed data[44] |
| 20 | 0x18DD8DB0 | CRC of chunk's type and content (but not length) |
हेक्साडेसिमल में बाईं ओर दिखाए गए बाइट मानों के साथ हेक्स संपादकों के फैशन में प्रदर्शित किया गया है, और दाईं ओर आईएसओ -8859-1 से उनके समकक्ष वर्णों को गैर-मान्यता प्राप्त और नियंत्रण वर्णों के साथ अवधियों के साथ बदल दिया गया है। इसके अतिरिक्त PNG हस्ताक्षर और अलग-अलग हिस्सों को रंगों से चिह्नित किया गया है। ध्यान दें कि उनके मानव पठनीय प्रकार के नामों (इस उदाहरण में PNG, IHDR, IDAT, और IEND) के कारण उन्हें पहचानना आसान है।
लाभ
इस अंतर्राष्ट्रीय मानक का उपयोग करने के कारण हो सकते हैं:
- पोर्टेबिलिटी: ट्रांसमिशन सॉफ्टवेयर और हार्डवेयर प्लेटफॉर्म से स्वतंत्र है।
- पूर्णता: ट्रूकलर, इंडेक्स्ड-कलर और ग्रेस्केल छवियों का प्रतिनिधित्व करना संभव है।
- श्रृंखला में कोडिंग और डिकोडिंग: श्रृंखला में डेटा स्ट्रीम उत्पन्न करने और पढ़ने की अनुमति देता है, अर्थात, डेटा स्ट्रीम का प्रारूप धारावाहिक संचार के माध्यम से इस समय छवियों के निर्माण और दृश्य के लिए उपयोग किया जाता है।
- प्रगतिशील प्रस्तुति: डेटा प्रवाह को प्रसारित करने में सक्षम होने के लिए जो शुरू में पूरी छवि का एक अनुमान है और डेटा प्रवाह प्राप्त होने पर उत्तरोत्तर सुधार होता है।
- संचारण त्रुटियों के लिए सुदृढ़ता: डेटा स्ट्रीम की संचरण त्रुटियों का सही ढंग से पता लगाता है।
- हानिरहित: कोई हानि नहीं: फ़िल्टरिंग और संपीड़न सभी सूचनाओं को संरक्षित करते हैं।
- दक्षता: कोई भी प्रगतिशील छवि प्रस्तुति, संपीड़न और फ़िल्टरिंग कुशल डिकोडिंग और प्रस्तुति की मांग करती है।
- संपीड़न: छवियों को कुशलतापूर्वक और लगातार संपीड़ित किया जा सकता है।
- सहजता: मानक का कार्यान्वयन आसान है।
- विनिमेयता: मानकों का पालन करने वाला कोई भी PNG डिकोडर सभी PNG डेटा स्ट्रीम को पढ़ सकता है।
- लचीलापन: पिछले बिंदु को प्रभावित किए बिना भविष्य के विस्तार और निजी परिवर्धन की अनुमति देता है।
- कानूनी प्रतिबंधों की स्वतंत्रता: उपयोग किए जाने वाले एल्गोरिदम स्वतंत्र और सुलभ हैं।
अन्य फ़ाइल स्वरूपों के साथ तुलना
ग्राफिक्स इंटरचेंज फॉर्मेट (जीआईएफ)
- छोटी छवियों पर, GIF PNG की तुलना में अधिक संपीड़न प्राप्त कर सकता है (नीचे #फ़ाइल आकार और अनुकूलन सॉफ़्टवेयर देखें)।
- अधिकांश छवियों पर, उपरोक्त मामले को छोड़कर, एक GIF फ़ाइल का आकार अनुक्रमित PNG छवि से बड़ा होता है।
- PNG अल्फा चैनल पारदर्शिता सहित, GIF की तुलना में अधिक व्यापक श्रेणी के पारदर्शिता विकल्प प्रदान करता है।
- जबकि जीआईएफ 8-बिट अनुक्रमित रंग तक सीमित है, पीएनजी 24-बिट (8 बिट प्रति चैनल) और 48-बिट (16 बिट प्रति चैनल) 24-बिट रंग सहित रंग की गहराई की एक विस्तृत श्रृंखला देता है, जो अधिक से अधिक अनुमति देता है रंग सटीक, चिकनी फीका, आदि।[46] जब एक अल्फा चैनल जोड़ा जाता है, तो प्रति पिक्सेल 64 बिट तक (संपीड़न से पहले) संभव है।
- किसी छवि को PNG प्रारूप से GIF में कनवर्ट करते समय, यदि PNG छवि में 256 से अधिक रंग हैं, तो पोस्टरीकरण के कारण छवि गुणवत्ता प्रभावित हो सकती है।
- जीआईएफ आंतरिक रूप से एनिमेटेड छवियों का समर्थन करता है। पीएनजी केवल अनाधिकारिक एक्सटेंशन के माध्यम से एनिमेशन का समर्थन करता है (ऊपर #एनीमेशन देखें)।
पीएनजी छवियां पुराने ब्राउज़रों द्वारा कम व्यापक रूप से समर्थित हैं। विशेष रूप से, IE6 में PNG के लिए सीमित समर्थन है।[47]
जेपीईजी
जेपीईजी (संयुक्त फोटोग्राफिक विशेषज्ञ समूह) प्रारूप फोटोग्राफी (और फोटो जैसी) छवियों के लिए पीएनजी की तुलना में एक छोटी फ़ाइल का उत्पादन कर सकता है, क्योंकि जेपीईजी विशेष रूप से फोटोग्राफिक छवि डेटा के लिए डिज़ाइन किए गए हानिकारक संपीड़न का उपयोग करता है, जो आमतौर पर नरम, कम-विपरीत संक्रमणों का प्रभुत्व होता है। , और शोर या इसी तरह की अनियमित संरचनाओं की मात्रा। ऐसी छवियों के लिए उच्च-गुणवत्ता वाले जेपीईजी के बजाय पीएनजी का उपयोग करने से गुणवत्ता में पारदर्शिता (डेटा संपीड़न) लाभ के साथ फ़ाइल आकार में बड़ी वृद्धि होगी। इसकी तुलना में, उन छवियों को संग्रहीत करते समय जिनमें पाठ, रेखा कला, या ग्राफ़िक्स होते हैं - तेज संक्रमण वाली छवियां और ठोस रंग के बड़े क्षेत्र - पीएनजी प्रारूप छवि डेटा को जेपीईजी से अधिक संपीड़ित कर सकता है। इसके अतिरिक्त, पीएनजी दोषरहित है, जबकि जेपीईजी उच्च-विपरीत क्षेत्रों के आसपास दृश्य कलाकृतियों का निर्माण करता है। (इस तरह की कलाकृतियाँ JPG संपीड़न में उपयोग की जाने वाली सेटिंग्स पर निर्भर करती हैं; जब निम्न-गुणवत्ता [उच्च-संपीड़न] सेटिंग का उपयोग किया जाता है तो वे काफी ध्यान देने योग्य हो सकते हैं।) दो प्रभाव। जेपीईजी पारदर्शिता का समर्थन नहीं करता है।
जेपीईजी का हानिपूर्ण संपीड़न भी पीढ़ी के नुकसान से ग्रस्त है, जहां बार-बार डिकोडिंग और एक छवि को फिर से बचाने के लिए फिर से एन्कोडिंग करने से हर बार जानकारी का नुकसान होता है, जिससे छवि खराब हो जाती है। क्योंकि पीएनजी दोषरहित है, यह संपादित की जाने वाली छवियों को संग्रहीत करने के लिए उपयुक्त है। जबकि पीएनजी फोटोग्राफिक छवियों को संपीड़ित करते समय काफी कुशल है, उदाहरण के लिए फोटोग्राफिक छवियों, दोषरहित वेबपी और डिजिटल नकारात्मक (डिजिटल नकारात्मक) के लिए विशेष रूप से डिज़ाइन किए गए दोषरहित संपीड़न प्रारूप हैं। हालाँकि ये प्रारूप या तो व्यापक रूप से समर्थित नहीं हैं, या मालिकाना हैं। एक छवि को दोषरहित रूप से संग्रहीत किया जा सकता है और केवल वितरण के लिए जेपीईजी प्रारूप में परिवर्तित किया जा सकता है, ताकि कोई पीढ़ी का नुकसान न हो।
जबकि PNG विनिर्देश में स्पष्ट रूप से डिजिटल कैमरों जैसे स्रोतों से Exif छवि डेटा को एम्बेड करने के लिए एक मानक शामिल नहीं है, PNG में EXIF डेटा एम्बेड करने के लिए पसंदीदा तरीका गैर-महत्वपूर्ण सहायक चंक लेबल का उपयोग करना है eXIf.[48]
प्रारंभिक वेब ब्राउज़र PNG छवियों का समर्थन नहीं करते थे; जेपीईजी और जीआईएफ मुख्य छवि प्रारूप थे। जीआईएफ की सीमित रंग गहराई के कारण वेब पेजों के लिए ग्रेडिएंट वाली छवियों का निर्यात करते समय जेपीईजी का आमतौर पर उपयोग किया जाता था। हालाँकि, JPEG संपीड़न के कारण ग्रेडिएंट थोड़ा धुंधला हो जाता है। एक पीएनजी प्रारूप फ़ाइल आकार को छोटा रखते हुए, दी गई बिट गहराई के लिए यथासंभव सटीक रूप से एक ढाल को पुन: उत्पन्न करता है। पीएनजी छोटे ग्रेडियेंट छवियों के लिए इष्टतम विकल्प बन गया क्योंकि प्रारूप में सुधार के लिए वेब ब्राउज़र समर्थन। आधुनिक ब्राउज़रों में ग्रेडिएंट्स प्रदर्शित करने के लिए किसी इमेज की आवश्यकता नहीं है, क्योंकि व्यापक शैली पत्रक का उपयोग करके ग्रेडिएंट्स बनाए जा सकते हैं।
जेपीईजी-रास
जेपीईजी-एलएस संयुक्त फोटोग्राफिक विशेषज्ञ समूह द्वारा एक छवि प्रारूप है, हालांकि ऊपर चर्चा की गई अन्य हानिकारक जेपीईजी प्रारूप की तुलना में बहुत कम व्यापक रूप से ज्ञात और समर्थित है। यह पीएनजी के साथ सीधे तुलनीय है, और परीक्षण छवियों का एक मानक सेट है।[49] वाटरलू प्रदर्शनों की सूची कलरसेट पर, परीक्षण छवियों का एक मानक सेट (जेपीईजी-एलएस अनुरूपता परीक्षण सेट से असंबंधित), जेपीईजी-एलएस आम तौर पर पीएनजी से 10-15% बेहतर प्रदर्शन करता है, लेकिन कुछ छवियों पर पीएनजी काफी बेहतर प्रदर्शन करता है। 50-75% का क्रम।[50] इस प्रकार, यदि ये दोनों प्रारूप विकल्प हैं और फ़ाइल का आकार एक महत्वपूर्ण मानदंड है, तो छवि के आधार पर इन दोनों पर विचार किया जाना चाहिए।
झगड़ा
टैग की गई छवि फ़ाइल स्वरूप (टीआईएफएफ) एक प्रारूप है जिसमें विकल्पों की एक विस्तृत श्रृंखला शामिल है। हालांकि यह टीआईएफएफ को पेशेवर छवि संपादन अनुप्रयोगों के बीच आदान-प्रदान के लिए एक सामान्य प्रारूप के रूप में उपयोगी बनाता है, यह अनुप्रयोगों के लिए इसके लिए समर्थन को एक बहुत बड़ा कार्य बनाता है और इसलिए छवि हेरफेर (जैसे वेब ब्राउज़र) से संबंधित अनुप्रयोगों में इसका समर्थन बहुत कम है। एक्स्टेंसिबिलिटी के उच्च स्तर का अर्थ यह भी है कि अधिकांश एप्लिकेशन संभावित सुविधाओं का केवल एक सबसेट प्रदान करते हैं, संभावित रूप से उपयोगकर्ता भ्रम और अनुकूलता के मुद्दे पैदा करते हैं।
टीआईएफएफ के साथ प्रयोग किया जाने वाला सबसे आम सामान्य-उद्देश्य, दोषरहित संपीड़न एल्गोरिथम लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) है। जीआईएफ में भी उपयोग की जाने वाली यह संपीड़न तकनीक, 2003 तक पेटेंट द्वारा कवर की गई थी। टीआईएफएफ संपीड़न एल्गोरिदम पीएनजी का भी समर्थन करता है (यानी टैग की गई छवि फ़ाइल प्रारूप # टीआईएफएफ संपीड़न टैग | संपीड़न टैग 000816'Adobe Systems-style') मध्यम उपयोग और अनुप्रयोगों द्वारा समर्थन के साथ। TIFF CCITT Group IV जैसे विशेष-उद्देश्य दोषरहित संपीड़न एल्गोरिदम भी प्रदान करता है, जो PNG के संपीड़न एल्गोरिदम की तुलना में द्विआधारी छवि (जैसे, फ़ैक्स या ब्लैक-एंड-व्हाइट टेक्स्ट) को बेहतर ढंग से संपीड़ित कर सकता है।
PNG केवल गैर-प्रीमिलीप्लाइड अल्फ़ा का समर्थन करता है[31]जबकि टीआईएफएफ संबद्ध (प्रीमिलीप्लाइड) अल्फा का भी समर्थन करता है।
सॉफ्टवेयर समर्थन
PNG प्रारूप का आधिकारिक संदर्भ कार्यान्वयन पुस्तकालय (कम्प्यूटिंग) libpng है।[51] इसे एक अनुमोदक अनुमेय मुफ्त सॉफ्टवेयर लाइसेंस शर्तों के तहत मुफ्त सॉफ्टवेयर के रूप में प्रकाशित किया जाता है। इसलिए, यह आमतौर पर मुफ्त ऑपरेटिंग सिस्टम में एक महत्वपूर्ण सिस्टम लाइब्रेरी के रूप में पाया जाता है।
=== PNG === के लिए बिटमैप ग्राफिक्स संपादक समर्थन
PNG प्रारूप ग्राफिक्स कार्यक्रमों द्वारा व्यापक रूप से समर्थित है, जिसमें Adobe Photoshop, Corel's Corel Photo-Paint|Photo-Paint और Corel Paint Shop Pro, GIMP, ग्राफिक कनवर्टर, हेलिकॉन फ़िल्टर, ImageMagick, Inkscape, IrfanView, Pixel छवि संपादक, Paint.NET शामिल हैं। और ज़ारा फोटो और ग्राफिक डिजाइनर और कई अन्य। लोकप्रिय ऑपरेटिंग सिस्टम के साथ बंडल किए गए कुछ प्रोग्राम जो PNG का समर्थन करते हैं, उनमें Microsoft के Microsoft पेंट और Apple Inc. की तस्वीरें (Apple) / iPhoto और पूर्वावलोकन (macOS) शामिल हैं, GIMP के साथ भी अक्सर लोकप्रिय Linux वितरण के साथ बंडल किया जाता है।
Adobe Fireworks (पूर्व में Macromedia द्वारा) अपने मूल फ़ाइल स्वरूप के रूप में PNG का उपयोग करता है, जिससे अन्य छवि संपादकों और पूर्वावलोकन उपयोगिताओं को चपटी छवि देखने की अनुमति मिलती है। हालाँकि, आतिशबाजी डिफ़ॉल्ट रूप से परतों, एनीमेशन, वेक्टर डेटा, पाठ और प्रभावों के लिए मेटाडेटा भी संग्रहीत करती है। ऐसी फाइलों को सीधे वितरित नहीं किया जाना चाहिए। पटाखे इसके बजाय छवि को वेब पेज आदि पर उपयोग के लिए अतिरिक्त मेटाडेटा के बिना एक अनुकूलित पीएनजी के रूप में निर्यात कर सकते हैं।[citation needed]
=== पीएनजी === के लिए वेब ब्राउज़र समर्थन
PNG समर्थन पहली बार 1997 में Internet Explorer 4.0b1 (32-बिट केवल NT के लिए) और नेटस्केप 4.04 में दिखाई दिया।[52] फ्री सॉफ्टवेयर फाउंडेशन के आह्वान के बावजूद[53] और वर्ल्ड वाइड वेब कंसोर्टियम (W3C),[54] उपकरण जैसे gif2png,[55] और अभियान जैसे बर्न ऑल जीआईएफ,[56] इंटरनेट एक्सप्लोरर में देर से और बगी समर्थन के कारण वेबसाइटों पर पीएनजी अपनाने की गति काफी धीमी थी, विशेष रूप से पारदर्शिता के संबंध में।[57] PNG संगत ब्राउज़र में शामिल हैं: Apple Safari (वेब ब्राउज़र), Google Chrome, Mozilla Firefox, Opera (वेब ब्राउज़र), Camino (वेब ब्राउज़र), Internet Explorer 7 (अभी भी कई मुद्दे),[58] इंटरनेट एक्सप्लोरर 8 (अभी भी कुछ मुद्दे), इंटरनेट एक्सप्लोरर 9 और कई अन्य। संपूर्ण तुलना के लिए, वेब ब्राउज़र की तुलना#छवि प्रारूप समर्थन|वेब ब्राउज़र की तुलना (छवि प्रारूप समर्थन) देखें।
विशेष रूप से 9.0 (2011 में जारी) से नीचे इंटरनेट एक्सप्लोरर (विंडोज़) के संस्करणों में कई समस्याएं हैं जो इसे पीएनजी छवियों को सही ढंग से प्रस्तुत करने से रोकती हैं।[58]
- 4.0 PNG के बड़े टुकड़ों पर क्रैश हो जाता है।[59]
- 4.0 does not include the functionality to view .png फ़ाइलें,[60] लेकिन एक रजिस्ट्री फिक्स है।[58]* 5.0 और 5.01 ने वस्तु समर्थन को तोड़ दिया है।[61]
- 5.01 विंडोज 98 के तहत काले (या गहरे भूरे) पृष्ठभूमि वाले पैलेट छवियों को प्रिंट करता है, कभी-कभी मौलिक रूप से परिवर्तित रंगों के साथ।[62]
- 6.0 आकार में 4097 या 4098 बाइट्स की पीएनजी छवियों को प्रदर्शित करने में विफल रहता है।[63]
- 6.0 एक या अधिक शून्य-लंबाई वाले IDAT चंक वाली PNG फ़ाइल नहीं खोल सकता। यह समस्या सबसे पहले सुरक्षा अद्यतन 947864 (MS08-024) में ठीक की गई थी। अधिक जानकारी के लिए, इस आलेख को Microsoft ज्ञानकोष में देखें: 947864 MS08-024: Internet Explorer के लिए संचयी सुरक्षा अद्यतन।[64]
- 6.0 कभी-कभी पूरी तरह से पीएनजी प्रदर्शित करने की क्षमता खो देता है, लेकिन कई सुधार हैं।[65]
- 6.0 और नीचे के अल्फा-चैनल पारदर्शिता समर्थन टूट गया है (इसके बजाय डिफ़ॉल्ट पृष्ठभूमि रंग प्रदर्शित करेगा)।[66][67][68] * 7.0 और नीचे 8-बिट अल्फा पारदर्शिता और तत्व अपारदर्शिता (कैस्केडिंग स्टाइल शीट्स - फिल्टर: अल्फा (अस्पष्टता = xx)) को आंशिक रूप से पारदर्शी वर्गों को काले रंग से भरे बिना संयोजित नहीं कर सकते।[69]
- 8.0 और उससे नीचे का गामा सपोर्ट असंगत/टूटा हुआ है।[58]* 8.0 और उससे नीचे के वर्जन में कलर करेक्शन सपोर्ट नहीं है।[58]
पीएनजी आइकनों के लिए ऑपरेटिंग सिस्टम का समर्थन
कम से कम 1999 से सूक्ति जैसे डेस्कटॉप वातावरण में पीएनजी आइकनों को लिनक्स के अधिकांश वितरणों में समर्थित किया गया है।[70] 2006 में, Windows Vista में PNG आइकन के लिए Microsoft Windows समर्थन पेश किया गया था।[71] PNG आइकन AmigaOS 4, AROS, macOS, iOS और MorphOS में भी समर्थित हैं। इसके अलावा, एंड्रॉइड (ऑपरेटिंग सिस्टम) पीएनजी का व्यापक उपयोग करता है।
फ़ाइल का आकार और अनुकूलन सॉफ्टवेयर
PNG फ़ाइल का आकार इस बात पर निर्भर करते हुए महत्वपूर्ण रूप से भिन्न हो सकता है कि यह एन्कोडेड और संपीड़ित कैसे है; इस पर चर्चा की गई है और पीएनजी: द डेफिनिटिव गाइड में कई सुझाव दिए गए हैं।[50]
=== जीआईएफ === की तुलना में जीआईएफ फाइलों की तुलना में, एक प्रभावी कंप्रेसर द्वारा संपीड़ित समान जानकारी (256 रंग, कोई सहायक हिस्सा/मेटाडेटा) वाली पीएनजी फ़ाइल सामान्य रूप से जीआईएफ छवि से छोटी होती है। फ़ाइल और कंप्रेसर के आधार पर, पीएनजी कुछ छोटे (10%) से लेकर काफी छोटे (50%) से कुछ बड़े (5%) तक हो सकता है, लेकिन शायद ही कभी काफी बड़ा होता है[50]बड़ी छवियों के लिए। इसे GIF के LZW की तुलना में PNG के DEFLATE के प्रदर्शन के लिए जिम्मेदार ठहराया गया है, और क्योंकि PNG के प्रेडिक्टिव फिल्टर की अतिरिक्त प्रीकंप्रेशन परत फाइलों को और कंप्रेस करने के लिए 2-आयामी छवि संरचना का ध्यान रखती है; फ़िल्टर किए गए डेटा के रूप में पिक्सेल के बीच अंतर को एन्कोड करता है, वे सभी संभावित मानों में फैले होने के बजाय 0 के करीब क्लस्टर करते हैं, और इस प्रकार DEFLATE द्वारा अधिक आसानी से संकुचित हो जाते हैं। हालाँकि, Adobe Photoshop, CorelDRAW और Microsoft पेंट के कुछ संस्करण खराब PNG संपीड़न प्रदान करते हैं, जिससे यह धारणा बनती है कि GIF अधिक कुशल है।[50]
फ़ाइल आकार कारक
पीएनजी फाइलें कई कारकों के कारण आकार में भिन्न होती हैं: रंग की गहराई: रंग की गहराई 1 से 64 बिट प्रति पिक्सेल तक हो सकती है। सहायक भाग: PNG मेटाडेटा का समर्थन करता है—यह संपादन के लिए उपयोगी हो सकता है, लेकिन वेबसाइटों पर देखने के लिए अनावश्यक है।
- इंटरलेसिंग
- चूंकि एडम7 एल्गोरिदम के प्रत्येक पास को अलग से फ़िल्टर किया जाता है, इससे फ़ाइल का आकार बढ़ सकता है।[50]फ़िल्टर: एक प्रीकंप्रेशन चरण के रूप में, प्रत्येक पंक्ति को भविष्य कहनेवाला फ़िल्टर द्वारा फ़िल्टर किया जाता है, जो लाइन से लाइन में बदल सकता है। चूंकि संपूर्ण छवि के फ़िल्टर किए गए डेटा पर अंतिम DEFLATE चरण संचालित होता है, कोई भी इस पंक्ति-दर-पंक्ति को अनुकूलित नहीं कर सकता है; इस प्रकार प्रत्येक पंक्ति के लिए फ़िल्टर का विकल्प संभावित रूप से बहुत परिवर्तनशील है, हालांकि अनुमान मौजूद हैं।[note 1]
संपीड़न: अतिरिक्त संगणना के साथ, डिफलेट कंप्रेशर्स छोटी फाइलें बना सकते हैं। इस प्रकार उच्च रंग की गहराई, अधिकतम मेटाडेटा (रंग स्थान की जानकारी सहित, सूचना के साथ जो प्रदर्शन को प्रभावित नहीं करता है), इंटरलेसिंग और संपीड़न की गति के बीच एक फाइलसाइज ट्रेड-ऑफ है, जो कम रंग की गहराई के साथ बड़ी फाइलें उत्पन्न करता है, कम या कोई सहायक भाग नहीं, कोई इंटरलेसिंग नहीं, और ट्यून किया गया लेकिन कम्प्यूटेशनल रूप से गहन फ़िल्टरिंग और संपीड़न। अलग-अलग उद्देश्यों के लिए, अलग-अलग ट्रेड-ऑफ़ चुने जाते हैं: एक अधिकतम फ़ाइल संग्रह और संपादन के लिए सर्वोत्तम हो सकती है, जबकि एक स्ट्रिप्ड डाउन फ़ाइल एक वेबसाइट पर उपयोग के लिए सर्वोत्तम हो सकती है, और इसी तरह तेज़ लेकिन खराब संपीड़न को बार-बार संपादन और सहेजते समय प्राथमिकता दी जाती है। फ़ाइल, जबकि फ़ाइल के स्थिर होने पर धीमी लेकिन उच्च संपीड़न को प्राथमिकता दी जाती है: संग्रह या पोस्ट करते समय। इंटरलेसिंग एक ट्रेड-ऑफ़ है: यह नाटकीय रूप से बड़ी फ़ाइलों के शुरुआती रेंडरिंग को गति देता है (विलंबता में सुधार करता है), लेकिन थोड़े लाभ के लिए फ़ाइल का आकार बढ़ा सकता है (थ्रूपुट घटा सकता है), विशेष रूप से छोटी फ़ाइलों के लिए।[50]
हानिपूर्ण पीएनजी संपीड़न
हालांकि पीएनजी एक दोषरहित प्रारूप है, पीएनजी कंप्रेशन को बेहतर बनाने के लिए पीएनजी एनकोडर हानिपूर्ण तरीके से छवि डेटा को प्रीप्रोसेस कर सकते हैं। उदाहरण के लिए, ट्रूकलर पीएनजी को 256 रंगों में परिमाणित करने से फ़ाइल आकार में संभावित कमी के लिए अनुक्रमित रंग प्रकार का उपयोग किया जा सकता है।[72]
छवि संपादन सॉफ्टवेयर
पीएनजी फाइलों को सहेजते समय कुछ प्रोग्राम दूसरों की तुलना में अधिक कुशल होते हैं, यह प्रोग्राम द्वारा उपयोग किए जाने वाले पीएनजी संपीड़न के कार्यान्वयन से संबंधित है।
कई ग्राफ़िक्स प्रोग्राम (जैसे कि Apple का प्रीव्यू (सॉफ़्टवेयर) सॉफ़्टवेयर) पीएनजी को बड़ी मात्रा में मेटाडेटा और रंग-सुधार डेटा के साथ सहेजते हैं जो आमतौर पर वर्ल्ड वाइड वेब देखने के लिए अनावश्यक होते हैं। Adobe Fireworks की अडॉप्टिमाइज्ड PNG फाइलें भी इसके लिए कुख्यात हैं क्योंकि उनमें समर्थित संपादकों में छवि को संपादन योग्य बनाने के विकल्प होते हैं। साथ ही CorelDRAW (कम से कम संस्करण 11) कभी-कभी पीएनजी उत्पन्न करता है जिसे इंटरनेट एक्सप्लोरर (संस्करण 6-8) द्वारा खोला नहीं जा सकता है।
वेब के लिए सहेजें सुविधा (जो स्पष्ट PNG/8 उपयोग की भी अनुमति देता है) का उपयोग करते समय PNG फ़ाइलों पर Adobe Photoshop का प्रदर्शन CS सूट में बेहतर हुआ है।
Adobe's Fireworks डिफ़ॉल्ट रूप से कई प्रोग्रामों की तुलना में बड़ी PNG फ़ाइलें सहेजता है। यह इसके सेव फॉर्मेट के यांत्रिकी से उपजा है: फायरवर्क्स के सेव फंक्शन द्वारा निर्मित छवियों में बड़े, निजी भाग शामिल हैं, जिसमें पूरी परत और वेक्टर जानकारी शामिल है। यह आगे दोषरहित संपादन की अनुमति देता है। जब निर्यात विकल्प के साथ सहेजा जाता है, आतिशबाजी के पीएनजी अन्य छवि संपादकों द्वारा उत्पादित के साथ प्रतिस्पर्धी होते हैं, लेकिन अब चपटा बिटमैप्स के अलावा कुछ भी संपादन योग्य नहीं हैं। पटाखे आकार-अनुकूलित वेक्टर-संपादन योग्य PNGs को सहेजने में असमर्थ हैं।
खराब पीएनजी कम्प्रेसर के अन्य उल्लेखनीय उदाहरणों में शामिल हैं:
- विंडोज एक्सपी के लिए माइक्रोसॉफ्ट का पेंट
- माइक्रोसॉफ्ट पिक्चर इट! फोटो प्रीमियम 9
खराब संपीड़न पीएनजी फ़ाइल के आकार को बढ़ाता है लेकिन अन्य कार्यक्रमों के साथ फ़ाइल की छवि गुणवत्ता या संगतता को प्रभावित नहीं करता है।
जब 24-बिट रंगीन छवि की रंग गहराई 8-बिट पैलेट (जीआईएफ में) तक कम हो जाती है, तो परिणामी छवि डेटा आमतौर पर बहुत छोटा होता है। इस प्रकार एक ट्रूकलर पीएनजी आमतौर पर रंग-कम जीआईएफ से बड़ा होता है, हालांकि पीएनजी रंग-कम संस्करण को तुलनीय आकार की पैलेटाइज्ड फ़ाइल के रूप में संग्रहीत कर सकता है। इसके विपरीत, कुछ उपकरण, पीएनजी के रूप में छवियों को सहेजते समय, स्वचालित रूप से उन्हें ट्रूकलर के रूप में सहेजते हैं, भले ही मूल डेटा केवल 8-बिट रंग का उपयोग करता हो, इस प्रकार फ़ाइल को अनावश्यक रूप से फुलाता है।[50]दोनों कारक गलत धारणा पैदा कर सकते हैं कि पीएनजी फाइलें समकक्ष जीआईएफ फाइलों से बड़ी हैं।
अनुकूलन उपकरण
पीएनजी फाइलों के अनुकूलन के लिए विभिन्न उपकरण उपलब्ध हैं; वे ऐसा करते हैं:
- (वैकल्पिक रूप से) सहायक भाग निकालना,
- रंग की गहराई कम करना, या तो:
- अगर छवि में 256 या उससे कम रंग हैं, तो पैलेट (आरजीबी के बजाय) का उपयोग करें,
- एक छोटे पैलेट का उपयोग करें, यदि छवि में 2, 4, या 16 रंग हैं, या
- (वैकल्पिक रूप से) मूल छवि में कुछ डेटा हानिपूर्ण रूप से त्यागें,
- लाइन-बाय-लाइन फ़िल्टर विकल्प का अनुकूलन, और
- डिफलेट संपीड़न का अनुकूलन।
उपकरण सूची
- pngcrush लोकप्रिय PNG ऑप्टिमाइज़र में सबसे पुराना है। यह फ़िल्टर चयन और संपीड़न तर्कों पर कई परीक्षणों की अनुमति देता है, और अंत में सबसे छोटा चुनता है। लगभग हर png ऑप्टिमाइज़र में इस वर्किंग मॉडल का इस्तेमाल किया जाता है।
- advpng और इसी तरह की advdef उपयोगिता AdvanceCOMP पैकेज में PNG IDAT को पुनः संपीड़ित करती है। चयनित संपीड़न स्तर, गति और फ़ाइल आकार के बीच व्यापार के आधार पर विभिन्न डिफलेट कार्यान्वयन लागू होते हैं: स्तर 1 पर zlib, स्तर 2 पर libdeflate, स्तर 3 पर 7-ज़िप का LZMA DEFLATE, और स्तर 4 पर zopfli।
- pngout को लेखक के अपने डिफ्लेटर (लेखक की ज़िप उपयोगिता, kzip के समान) के साथ बनाया गया था, जबकि रंग में कमी/फ़िल्टरिंग की सभी सुविधाओं को ध्यान में रखा गया था। हालाँकि, pngout एक बार में फ़िल्टर पर कई परीक्षणों का उपयोग करने की अनुमति नहीं देता है। इसके वाणिज्यिक जीयूआई संस्करण, पीएनजीआउटविन का उपयोग करने का सुझाव दिया गया है, या परीक्षणों को स्वचालित करने के लिए #रैपर टूल के साथ प्रयोग किया जाता है या फ़िल्टर लाइन को लाइन से रखते हुए अपने स्वयं के डिफ्लेटर का उपयोग करके पुनःसंपीड़ित किया जाता है।
- Zopflipng भी एक स्व-अपस्फीतिकारक, Zopfli के साथ बनाया गया था। इसमें सभी अनुकूलन विशेषताएं हैं pngcrush में (स्वचालित परीक्षणों सहित) एक बहुत अच्छा, लेकिन धीमा डिफ्लेटर प्रदान करते हुए।
उनकी विशेषताओं की एक सरल तुलना नीचे सूचीबद्ध है।
| Optimizer | Chunk removal | Color reduction | Filtering | Filter reuse[note 2] | Multiple trials on filters in a single run | Deflater[note 3] |
|---|---|---|---|---|---|---|
| advpng | Yes | No[note 4] | 0 | No | N/A[note 5] | (multiple) |
| advdef | No | No | Reuses previous filter set | Always | N/A | (multiple) |
| pngcrush | Yes | Yes | 0–4 or adaptive | No | Yes | zlib |
| pngout | Yes | Yes | 0–4 or adaptive | Yes[note 6] | No | kzip |
| zopflipng | Yes | Yes | 0–4 or adaptive with 2 different algorithms, or with a brute way | Yes | Yes | zopfli |
zopflipng उपलब्ध होने से पहले, png ऑप्टिमाइज़ेशन करने का एक अच्छा तरीका इष्टतम संपीड़न के लिए अनुक्रम में 2 टूल के संयोजन का उपयोग करना है: एक जो फ़िल्टर को अनुकूलित करता है (और सहायक हिस्सा हटाता है), और एक जो DEFLATE को ऑप्टिमाइज़ करता है। हालाँकि pngout दोनों प्रदान करता है, केवल एक ही प्रकार के फ़िल्टर को एक बार में निर्दिष्ट किया जा सकता है, इसलिए इसका उपयोग #रैपर टूल के साथ या pngcrush के संयोजन में किया जा सकता है,[note 6]advdef की तरह री-डिफ्लेटर के रूप में कार्य करना।
सहायक हिस्सा हटाना
सहायक हिस्सों को हटाने के लिए, अधिकांश पीएनजी अनुकूलन उपकरणों में पीएनजी फाइलों (गामा, सफेद संतुलन, आईसीसी रंग प्रोफ़ाइल, मानक आरजीबी रंग प्रोफ़ाइल) से सभी रंग सुधार डेटा को हटाने की क्षमता होती है। इसका परिणाम अक्सर बहुत छोटे फ़ाइल आकार में होता है। उदाहरण के लिए, निम्नलिखित कमांड लाइन विकल्प इसे pngcrush के साथ प्राप्त करते हैं:
pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.png
फ़िल्टर अनुकूलन
pngcrush, pngout, और zopflipng सभी ऑफ़र विकल्प वैश्विक स्तर पर 0–4 फ़िल्टर प्रकारों में से किसी एक को लागू करते हैं (सभी पंक्तियों के लिए समान फ़िल्टर प्रकार का उपयोग करके) या एक छद्म फ़िल्टर (क्रमांकित 5) के साथ, जो प्रत्येक पंक्ति के लिए फ़िल्टर प्रकारों में से एक को चुनता है 0 -4 एक अनुकूली एल्गोरिथ्म का उपयोग करना। Zopflipng 3 अलग-अलग अनुकूली विधि प्रदान करता है, जिसमें ब्रूट-फोर्स सर्च शामिल है जो फ़िल्टरिंग को अनुकूलित करने का प्रयास करता है। pngout और zopflipng संरक्षित/पुन: उपयोग करने का विकल्प प्रदान करते हैं इनपुट इमेज में मौजूद लाइन-बाय-लाइन फ़िल्टर सेट।
pngcrush और zopflipng एक ही बार में विभिन्न फ़िल्टर रणनीतियों को आज़माने और सर्वश्रेष्ठ चुनने के विकल्प प्रदान करते हैं। pngout का फ्रीवेयर कमांड लाइन संस्करण इसकी पेशकश नहीं करता है, लेकिन व्यावसायिक संस्करण, pngoutwin, करता है।
डिफ्लेट ऑप्टिमाइज़ेशन
Zopfli और 7zip#Software development किट DEFLATE कार्यान्वयन प्रदान करते हैं जो प्रदर्शन की कीमत पर zlib संदर्भ कार्यान्वयन की तुलना में उच्च डेटा संपीड़न अनुपात उत्पन्न कर सकते हैं। एडवांसकॉम्प्स advpng और advdef PNG फ़ाइलों को फिर से कंप्रेस करने के लिए इनमें से किसी भी लाइब्रेरी का उपयोग कर सकते हैं। इसके अतिरिक्त, पीएनजीओयूटी में अपना स्वामित्व सॉफ्टवेयर डिफलेट कार्यान्वयन शामिल है।
advpng फ़िल्टर लागू करने का कोई विकल्प नहीं है और हमेशा वैश्विक रूप से फ़िल्टर 0 का उपयोग करता है (छवि डेटा को अनफ़िल्टर्ड छोड़कर); इसलिए इसका उपयोग वहां नहीं किया जाना चाहिए जहां छवि को फ़िल्टर करने से काफी लाभ होता है। इसके विपरीत, advdef एक ही पैकेज से पीएनजी संरचना से संबंधित नहीं है और केवल एक पुन: अपस्फीति के रूप में कार्य करता है, किसी भी मौजूदा फ़िल्टर सेटिंग्स को बनाए रखता है।
चिह्न अनुकूलन
चूंकि विंडोज विस्टा और बाद के संस्करणों के लिए लक्षित आइकन (कंप्यूटिंग) में पीएनजी सबइमेज हो सकते हैं, इसलिए अनुकूलन उन पर भी लागू किया जा सकता है। कम से कम एक आइकन (कंप्यूटिंग), Pixelformer, ICO (फ़ाइल स्वरूप) फ़ाइलों को सहेजते हुए एक विशेष अनुकूलन पास करने में सक्षम है, जिससे उनका आकार कम हो जाता है। FileOptimizer (ऊपर उल्लिखित) ICO फ़ाइलों को भी संभाल सकता है।
Apple Icon छवि प्रारूप में PNG सबइमेज भी हो सकते हैं, फिर भी ऐसा कोई उपकरण उपलब्ध नहीं है।
यह भी देखें
- कंप्यूटर ग्राफिक्स, सहित:
- छवि संपादन
- छवि फ़ाइल स्वरूप
- संबंधित ग्राफिक्स फ़ाइल स्वरूप
- एपीएनजी एनिमेटेड पीएनजी
- जेपीईजी नेटवर्क ग्राफिक्स (जेएनजी)
- एकाधिक-छवि नेटवर्क ग्राफ़िक्स (MNG)
- समान फ़ाइल स्वरूप
- पोर्टेबल आइकन के लिए एक्स पिक्समैप
- स्केलेबल वेक्टर ग्राफिक्स
- वेब पी
व्याख्यात्मक नोट्स
- ↑ The filtering is used to increase the similarity to the data, hence increasing the compression ratio. However, there is theoretically no formula for similarity, nor absolute relationship between the similarity and compressor, thus unless the compression is done, one can't tell one filter set is better than another.
- ↑ The tools offering such feature could act as a pure re-deflater to PNG files.
- ↑ zlib, the reference deflate implementation, compression is suboptimal even at the maximum level. See Zopfli, zip format in 7-zip and pngout.
- ↑ Not only does advpng not support color reduction, it also fails on images with a reduced colorspace.
- ↑ Advpng can only apply filter 0 globally, thus it's neither yes or no, but N/A.
- ↑ 6.0 6.1 Use pngout -f6 to reuse previous filter set
संदर्भ
- ↑ 1.0 1.1 1.2 "ISO/IEC 15948:2004 – Information technology – Computer graphics and image processing – Portable Network Graphics (PNG): Functional specification". International Organization for Standardization. 3 March 2004. Retrieved 2011-02-19.
- ↑ 2.0 2.1 Roelofs, Greg (29 May 2010). "पीएनजी का इतिहास". libpng. Retrieved 2010-10-20.
- ↑ W3C 2003, 1 Scope.
- ↑ "ऑक्सफोर्ड एडवांस्ड लर्नर्स डिक्शनरी से पीएनजी संज्ञा की परिभाषा". Oxford Learner's Dictionaries. Retrieved 2018-01-21.
- ↑ "पोर्टेबल नेटवर्क ग्राफ़िक .PNG फ़ाइल विवरण". surferhelp.goldensoftware.com. Retrieved 2022-08-12.
- ↑ Roelofs, Greg. "Web Review: PNG's NOT GIF!". people.apache.org. Retrieved 2021-11-24.
- ↑ T. Boutell; et al. (March 1997). "पीएनजी (पोर्टेबल नेटवर्क ग्राफिक्स) विशिष्टता संस्करण 1.0". RFC 2083. IESG. sec. 3. doi:10.17487/RFC2083.
- ↑ "Registration of new Media Type image/png". IANA. 1996-07-27.
- ↑ Limer, Eric (2019-10-30). "जीआईएफ मर चुका है। लॉन्ग लिव जीआईएफ।". Popular Mechanics. Retrieved 2022-11-21.
- ↑ Roelofs 1999, Chapter 7. History of the Portable Network Graphics Format.
- ↑ 11.0 11.1 11.2 11.3 W3C 2003, 11.2.2
IHDRImage header - ↑ Roelofs, Greg (29 September 2011). "पोर्टेबल नेटवर्क ग्राफिक्स (पीएनजी) विनिर्देश और एक्सटेंशन". libpng. Retrieved August 15, 2021.
- ↑ "पीएनजी (पोर्टेबल नेटवर्क ग्राफिक्स) विशिष्टता 1.0". W3C. 1 October 1996. sec. 8.4.
PNG itself is strictly a single-image format. (...) In the future, a multiple-image format based on PNG may be defined. Such a format will be considered a separate file format
- ↑ Boutell, Thomas (1 October 1996). "पीएनजी (पोर्टेबल नेटवर्क ग्राफिक्स) विशिष्टता 1.0".
{{cite journal}}: Cite journal requires|journal=(help) - ↑ W3C 2003, 5.2 PNG signature.
- ↑ W3C 2003, 5.3 Chunk layout.
- ↑ 17.0 17.1 Laphroaig, Manul (31 October 2017). पीओसी या जीटीएफओ. ISBN 9781593278984.
Each chunk consists of four parts: Length, a Chunk Type, the Chunk Data, and a 32-bit CRC. The Length is a 32-bit unsigned integer indicating the size of only the Chunk Data field
- ↑ Laphroaig, Manul (31 October 2017). - पीओसी या जीटीएफओ. ISBN 9781593278984.
Chunk Type is a 32-bit FourCC code such as IHDR, IDAT, or IEND.
{{cite book}}: Check|url=value (help) - ↑ W3C 2003, 11.2.4
IDATImage data. - ↑ W3C 2003, 11.2.5
IENDImage trailer. - ↑ W3C 2003, 11.3.3.3
iCCPEmbedded ICC profile. - ↑ Thomas Kopp (17 April 2008). "PNG Digital Signatures: Extension Specification".
- ↑ "Extensions to the PNG 1.2 Specification, version 1.5.0". ftp-osl.osuosl.org.
- ↑ W3C 2003, 11.3.3.2
gAMAImage gamma. - ↑ W3C 2003, 11.3.5.3
pHYsPhysical pixel dimensions. - ↑ W3C 2003, 11.3.3.4
sBITSignificant bits. - ↑ "PNG (Portable Network Graphics) Specification \ Version 1.0". w3.org. Retrieved 30 May 2022. 4.2.6. sBIT Significant bits, 13 bytes total - color type 2 and 3 totaled 6 bytes
- ↑ Roelofs 2003, Significant Bits (sBIT)"Grayscale images are the simplest; sBIT then contains a single byte indicating the number of significant bits in the source data"
- ↑ "PNG Specification: Chunk Specifications".
- ↑ "PNG News from 2006". Libpng.org.
- ↑ 31.0 31.1 "PNG Specification: Rationale". w3.org.
- ↑ W3C 2003, 9 Filtering.
- ↑ "Filter Algorithms". PNG Specification.
- ↑ Paeth, Alan W. (1991). Arvo, James (ed.). "छवि फ़ाइल संपीड़न आसान हो गया". Graphics Gems 2. Academic Press, San Diego: 93–100. doi:10.1016/B978-0-08-050754-5.50029-3. ISBN 0-12-064480-0. closed access publication – behind paywall
- ↑ Crocker, Lee Daniel (July 1995). "PNG: The Portable Network Graphic Format". Dr. Dobb's Journal. 20 (232): 36–44.
- ↑ "पीएनजी का परिचय". nuwen.net. Retrieved 2010-10-20.
- ↑ "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 2021-02-06.
- ↑ "iOS 8 and iPhone 6 for web developers and designers: next evolution for Safari and native webapps". mobilexweb.com. 2014-09-17. Retrieved 2014-09-24.
- ↑ scroggo (14 March 2017). "chromium / chromium / src / 7d2b8c45afc9c0230410011293cc2e1dbb8943a7". chromium.googlesource.com. Retrieved 31 March 2017.
- ↑ chrome-cron; et al. (27 March 2017). "chromium / chromium / src / 59.0.3047.0..59.0.3053.0". chromium.googlesource.com. Retrieved 31 March 2017.
- ↑ "Dev.Opera — What's new in Chromium 59 and Opera 46". dev.opera.com. Retrieved 2022-09-11.
- ↑ "Vote failed: APNG 20070405a". 20 April 2007. Archived from the original on 3 February 2008.
- ↑ "पीएनजी समूह एनीमेशन प्रस्ताव तुलना + परीक्षण-सॉफ्टवेयर". xs4all.nl. Archived from the original on 24 January 2009.
- ↑ 44.0 44.1 44.2 Deutsch, L. Peter; Gailly, Jean-Loup (May 1996). "rfc1950". datatracker.ietf.org. Retrieved 2021-08-18.
- ↑ Deutsch, L. Peter (May 1996). "rfc1951". datatracker.ietf.org. Retrieved 2021-08-18.
- ↑ "पीएनजी सुविधाओं का एक बुनियादी परिचय". Libpng.org. Retrieved 2010-10-20.
- ↑ "GIF, PNG, JPG. Which One To Use?". Sitepoint.com. 3 August 2009. Retrieved 2010-10-20.
- ↑ "Extensions to the PNG 1.2 Specification, Version 1.5.0". Retrieved 5 May 2020.
- ↑ "T.87 : Lossless and near-lossless compression of continuous-tone still images – Baseline". International Telecommunication Union. Retrieved 20 March 2011.
- ↑ 50.0 50.1 50.2 50.3 50.4 50.5 50.6 Roelofs 2003, Chapter 9. Compression and Filtering
- ↑ "libpng". Retrieved 2013-07-13.
- ↑ "डेटा प्रदर्शित करने के लिए PNG छवियों का उपयोग". Oregon Water Science Center. 16 February 2006.
- ↑ "जीएनयू वेब पेजों पर जीआईएफ फाइलें क्यों नहीं हैं I". GNU Operating System. 16 December 2008.
- ↑ "पीएनजी फैक्ट शीट". World Wide Web Consortium. 7 October 1996.
- ↑ "Resource page for gif2png 2.5.11". catb.org.
- ↑ "सभी जीआईएफ जलाएं". burnallgifs.org.
- ↑ "इंटरनेट एक्सप्लोरर में पीएनजी पारदर्शिता". PC Magazine. 5 October 2004.
- ↑ 58.0 58.1 58.2 58.3 58.4 "PNG समर्थन वाले ब्राउज़र". 14 March 2009.
- ↑ "जब मैं इसे देखने के लिए आतिशबाजी पीएनजी फ़ाइल पर क्लिक करता हूं तो विंडोज एक्सप्लोरर क्रैश हो जाता है". Adobe Systems. 5 June 2007.
- ↑ "Unable to view .png images with Internet Explorer 4.0". Microsoft Knowledge Base.
- ↑ "पीएनजी जो एक ऑब्जेक्ट टैग के अंदर एक नकारात्मक छवि के रूप में प्रिंट होते हैं". Microsoft Knowledge Base.
- ↑ "PNG Images Are Printed Improperly in Internet Explorer 5.01". Microsoft Knowledge Base.
- ↑ "You cannot view some PNG images in Internet Explorer 6". Microsoft Knowledge Base.
- ↑ "You cannot use Internet Explorer 6 to open a PNG file that contains one or more zero-length IDAT chunks". Microsoft Knowledge Base.
- ↑ "PNG Frequently Asked Questions".
- ↑ "PhD: Portable Network Graphics Lose Transparency in Web Browser". Microsoft Knowledge Base.
- ↑ "PNG फ़ाइलें Internet Explorer में पारदर्शिता नहीं दिखाती हैं". Microsoft Knowledge Base.
- ↑ Lovitt, Michael (21 December 2002). "Cross-Browser Variable Opacity with PNG: A Real Solution". A List Apart. Archived from the original on 18 August 2011. Retrieved 21 July 2009.
- ↑ "IE7 alpha transparent PNG + opacity". Channel 9. Archived from the original on 27 August 2011. Retrieved 23 January 2009.
- ↑ Fulbright, Michael (1999). "गनोम 1.0 लाइब्रेरी रोडमैप". Archived from the original on 30 January 2010. Retrieved 19 December 2007.
- ↑ "Windows Vista – Icons". OOne. 2007. Archived from the original on 11 November 2007. Retrieved 2007-11-12.
- ↑ "PNG एक हानिपूर्ण प्रारूप हो सकता है". Pngmini.com. Retrieved 2014-02-01.
अग्रिम पठन
- Roelofs, Greg (April 1997). "Linux Gazette: History of the Portable Network Graphics (PNG) Format". Linux Journal. Specialized Systems Consultants, Inc. 1997 (36es). ISSN 1075-3583.
- Roelofs, Greg (2003). PNG: The Definitive Guide (2nd ed.). O'Reilly Media. ISBN 1-56592-542-4.
- "Portable Network Graphics (PNG) Specification" (Second ed.). W3C. 10 November 2003.
बाहरी संबंध
- PNG Home Site
- libpng Home Page
- The Story of PNG by Greg Roelofs
- Test inline PNG images
- RFC 2083
- More information about PNG color correction
- The GD-library to generate dynamic PNG-files with PHP
- PNG Adam7 interlacing
- Encoding Web Shells in PNG files: Encoding human readable data inside an IDAT block.