lossless कंटेनर, PNG क्या रखता है
PNG एक lossless एल्गोरिदम DEFLATE पर टिका है. यह हर पिक्सेल के RGBA मान ठीक-ठीक लिख देता है, पहले हर scanline पर एक उलटा करने योग्य फ़िल्टर चलाता है, फिर पूरे को एक zlib-शैली की धारा से निचोड़ता है. lossless का मतलब यहाँ यह है कि जो मान आप decompress करते हैं वे वही हैं जो आपने डाले थे, बाइट-दर-बाइट. JPG-to-PNG मामले में, भीतर जाते मान वे पिक्सेल हैं जो ब्राउज़र JPEG डिकोड करने के बाद वापस सौंपता है, और वे पहले से मूल JPEG save में डाली हर अनुमान-गणना ढोते हैं. तो PNG फ़र्ज़ निभाते हुए अनुमानों को दर्ज करता है, उस असली दृश्य को नहीं जो खींचा गया था. मापा गया, 1024x768 पर एक 17 KB की JPEG PNG के रूप में 105 KB के पास उतरती है, जबकि 3840x2160 पर एक 116 KB की JPEG करीब 384 KB तक पहुँचती है. गुणक JPEG quality सेटिंग के बजाय रिज़ॉल्यूशन का पीछा करते हैं, इसी से वे कंटेंट के पार करीब-करीब टिके रहते हैं. कंटेनर अपना मोल गिरावट रोककर कमाता है, उसे पलटकर नहीं.
JPEG क्वालिटी वापस क्यों नहीं आ सकती
JPEG हमेशा के लिए जानकारी झाड़ देता है. उसका compression 8x8 ब्लॉक पर एक cosine transform चलाता है, frequency coefficients को एक मोटे सेट तक नीचे गोल करता है, और उन गोल किए नंबरों को रखता है. वह गोलाई बस एक ही ओर जाती है, तो एक coefficient जो 50 में snap होने से पहले 47 पढ़ता था कभी वापस नहीं धकेला जा सकता, और फ़ाइल 47 की कोई याद नहीं रखती. JPEG को डिकोड करना उन गोल coefficients से पिक्सेल फिर बनाता है, जो मूल का अंदाज़ा हैं. उन अंदाज़ों को PNG में लपेटिए और आपको एक खोटी तस्वीर की एक बेदाग़ नकल मिलती है. इसमें से कुछ भी PNG या Araluma की कमी नहीं, यह बस ऐसे है जैसे lossy compression काम करता है, जहाँ save के समय गिराई कोई चीज़ गिरी ही रहती है. बेहतर JPEG quality का इकलौता रास्ता uncompressed सोर्स या RAW फ़ाइल पर लौटना है.
मापी गई फ़ाइल साइज़ बढ़ोतरी
एक JPG अपने PNG तक के रास्ते में कितना फूलता है यह तस्वीर पर निर्भर करता है, पर रुझान टिका रहता है. भरपूर tonal बदलाव वाली व्यस्त फ़ोटोग्राफ़ सबसे ज़्यादा बढ़ती हैं, क्योंकि यही वह सामग्री है जिसे JPEG शानदार ढंग से compress करता है जबकि PNG का lossless coder ऐसे शोरदार पिक्सेल पर तालमेल नहीं रख सकता. इस टूल के अपने टेस्ट से, 1024x768 पर एक 17 KB की JPEG फ़ोटो एक 105 KB की PNG बनती है, करीब छह गुना छलांग, और 3840x2160 पर एक 116 KB की JPEG फ़ोटो एक 384 KB की PNG बनती है, करीब 3.3 गुना बड़ी. स्क्रीनशॉट और आइकन जैसी सपाट सामग्री शुरू में ही JPEG को कम सूट करती है और वहाँ ज़्यादा वज़न ढोती है, तो उसकी PNG कम तीखेपन से बढ़ती है. सबक साफ़ है, अगर एक छोटा आउटपुट ही आप खोज रहे हैं, तो एक JPG को PNG में बदलना आपको ग़लत दिशा में धकेलता है.
transparency, क्षमता बनाम कंटेंट
PNG का 8-बिट alpha channel कंटेनर की एक ख़ूबी है, जो किसी भी पिक्सेल को पूरी तरह साफ़ के लिए 0 से पूरी तरह ठोस के लिए 255 तक एक opacity ढोने देती है. जब एक JPG को platform image engine के ज़रिए एक PNG के रूप में फिर से बनाया जाता है, हर पिक्सेल 255 पर निकलता है, पूरी तरह opaque, क्योंकि JPG के पास पहली जगह कोई transparency आगे देने को थी ही नहीं. PNG alpha डेटा रखने को तैयार खड़ा है, फ़ाइल बस कुछ नहीं रखती, क्योंकि सोर्स में कुछ मौजूद न था. इमेज में transparency डालना एक अलग ऑपरेशन लेता है, या तो किसी एडिटर में हाथ से बैकग्राउंड mask करना या एक अपने आप चलने वाला background remover चलाना. सब्जेक्ट को पकड़ने के लिए ट्यून किया एक remover बदलाव के बाद बैकग्राउंड पिक्सेल की opacity को शून्य कर के एक असली alpha वाली PNG दे सकता है.
EXIF मेटाडेटा संभालना
जब फ़ाइल फिर से बनती है, उसके EXIF, IPTC और XMP टैग हर ब्राउज़र में PNG से झड़ जाते हैं, अपने साथ GPS निर्देशांक, कैमरा बॉडी, शॉट की तारीख, copyright टेक्स्ट, और कोई भी कस्टम XMP जो JPG रखती थी, ले जाते हुए. रंग प्रोफ़ाइल थोड़ी अलग चलती हैं. Chrome और Safari बाहर आने वाले पर sRGB टैग रखते हैं, जबकि Firefox उसे बाकी सबके साथ जाने देता है. तो PNG जहाँ भी आप उसे खोलें sRGB-सुरक्षित है, हालाँकि Display-P3 या Adobe RGB जैसी एक चौड़े-gamut प्रोफ़ाइल Firefox के पार नहीं टिकेगी. आम वेब और शेयरिंग के लिए, टैग गिराना एक फ़ायदा है, थोड़ा वज़न छाँटना और आपकी फ़ोटो से लोकेशन डेटा निकालना. जिस पेशेवर या अभिलेखीय काम को अपना embedded मेटाडेटा थामे रखना है, उसके लिए उस श्रृंखला को एक खास-मकसद वाले टूल से बदलने से पहले या बाद में संभालिए.
निजता और काम कहाँ गिरता है
काम कहाँ गिरता है यह मात्रा पर निर्भर करता है। एक छवि के लिए कुछ भी ब्राउज़र नहीं छोड़ता, और आप इसे सेकंडों में सीधे जाँच सकते हैं। Chrome DevTools खोलें, नेटवर्क पैनल पर जाएँ, XHR और Fetch से छानें, और एक फ़ाइल बदलें। एन्कोडिंग चलते समय कुछ भी नहीं उभरता। दो या अधिक के लिए Araluma उन्हें हमारे सर्वर पर भेजता है, जो बदलकर परिणाम को इकट्ठा करके एक डाउनलोड लिंक लौटाता है। वह लिंक और बदली हुई फ़ाइलें करीब 2 घंटे में हटा दी जाती हैं। एक छवि का रास्ता सब कुछ डिवाइस पर, नेटवर्क के बाहर रखता है, जबकि एक बैच इसे एक बार में कई फ़ाइलें निपटाने से बदल देता है। किसी निजी चीज़ के स्क्रीनशॉट या आपके स्थान से अंकित तस्वीर के लिए, एक-एक कर बदलना उसे आपकी मशीन पर रखता है, एक सच्चा अंतर, कोई नारा नहीं।