फोटो वाली PNG इतनी बड़ी क्यों होती हैं
लॉसलेस PNG कंप्रेशन हर पिक्सल को हू-ब-हू सहेजता है. लाखों हल्के-हल्के बदलते टोन वाली फोटो इमेज के लिए इससे बहुत बड़ी फाइलें बनती हैं क्योंकि पड़ोसी पिक्सल के बीच लगभग कुछ भी ऐसा नहीं होता जिसे दोहराव हटाकर या अनुमान लगाकर छोटा किया जा सके. आम 1600x1200 की फोटो several megabytes की PNG बनती है. वही इमेज क्वालिटी 85 पर JPEG के रूप में 200 से पर आ जाती है. यह फर्क JPEG के दिल में बसे डिस्क्रीट कोसाइन ट्रांसफॉर्म से आता है, जो 8x8 पिक्सल ब्लॉक में काम करता है, उस हाई-फ्रीक्वेंसी डिटेल को छोड़ देता है जिसके लिए मानव दृष्टि सबसे कम संवेदनशील है, और बाकी कोएफिशिएंट को घनी तरह सहेजता है. नतीजा हर ऐसी इमेज के लिए कहीं छोटी फाइल है जिसमें लगातार बदलते टोन हों, यानी हर फोटो. PNG की लॉसलेस गारंटी ग्राफिक्स और वर्किंग फाइलों के लिए कीमती है, पर शेयर करने जा रही फोटो के लिए यह गलत कंटेनर है.
ट्रांसपेरेंसी और अल्फा चैनल
PNG पूरा 8-बिट अल्फा चैनल सपोर्ट करता है, यानी हर पिक्सल पूरी तरह ट्रांसपेरेंट से लेकर पूरी तरह ठोस तक कहीं भी हो सकता है. JPG कोई अल्फा जानकारी परिभाषित ही नहीं करता, क्योंकि उसके कंटेनर में हर-पिक्सल ट्रांसपेरेंसी के लिए कोई फील्ड नहीं है. जब प्लेटफॉर्म इमेज इंजन PNG को JPEG के रूप में दोबारा सेव करता है, तो सेव से पहले वह अल्फा चैनल को एक बैकग्राउंड रंग पर मिला देता है. डिफॉल्ट बैकग्राउंड सफेद है, इसीलिए PNG के ट्रांसपेरेंट हिस्से नतीजा JPG में सफेद दिखते हैं. मुख्य बात यह है कि कोई टूल ट्रांसपेरेंट JPG नहीं बना सकता, क्योंकि फॉर्मेट यह कल्पना ही सपोर्ट नहीं करता. अगर कट-आउट बचाना मायने रखता है, तो जवाब WebP या PNG रखना है. RoundCut सफेद को सपाट करने वाले रंग के रूप में चुनता है क्योंकि यह ज्यादातर डॉक्यूमेंट और प्रोडक्ट लिस्टिंग के बैकग्राउंड से मेल खाता है.
मापी गई सेव परफॉर्मेंस
Chrome 148, Linux डेस्कटॉप पर, प्लेटफॉर्म JPEG सेव पाथ का इस्तेमाल करते हुए मापा गया. 400x300 की इमेज (0.12 MP) करीब 10 से 15 ms में सेव होती है. 1024x768 की इमेज (0.78 MP) करीब 13 से 20 ms में. 3840x2160 की इमेज (8 MP) करीब 1.4 सेकंड में. 8000x6000 की इमेज (48 MP) करीब 1.5 सेकंड में. ब्राउज़र में JPEG सेव करना उसी इमेज की PNG सेव से काफी तेज है, और AVIF से तो बहुत ही तेज, जिसे अलग मॉड्यूल चाहिए और जो डेस्कटॉप Chrome पर भी 48 MP पर 25 सेकंड ले सकता है. इसी रफ्तार के कारण PNG to JPG इस परिवार के सबसे तेज बदलाव पाथ में से एक है, और कोई अलग डाउनलोड खर्च नहीं क्योंकि JPEG सेव हर ब्राउज़र में पहले से मौजूद है.
EXIF और मेटाडेटा का बर्ताव
री-सेव पाइपलाइन हर ब्राउज़र पर आउटपुट JPG से EXIF, IPTC और XMP मेटाडेटा हटा देती है. इसका मतलब है कि सोर्स PNG में मौजूद लोकेशन निर्देशांक, कैमरा मॉडल, कैप्चर तारीख, कॉपीराइट नोटिस और कोई भी कस्टम फील्ड हटा दी जाती है. ICC कलर प्रोफाइल अलग रास्ता अपनाती हैं, जहाँ Chrome और Safari आउटपुट में sRGB ICC प्रोफाइल बचाते हैं जबकि Firefox उसे पूरी तरह हटा देता है. व्यावहारिक नतीजा यह है कि बदली हुई JPG सभी ब्राउज़र में sRGB-सुरक्षित है, पर अगर आपकी PNG पर Display-P3 या Adobe RGB जैसी वाइड-गैमट प्रोफाइल का टैग था, तो वह टैग Firefox में नहीं बचता. अगर पूरी मेटाडेटा बचाना आपके वर्कफ्लो की जरूरत है, तो बदलने के बाद किसी समर्पित टूल से उसे एडिट कीजिए. आम वेब और शेयरिंग के लिए मेटाडेटा हटना मददगार है क्योंकि यह फाइल थोड़ी छोटी करता है और फोटो से GPS डेटा निकाल देता है.
JPG आर्टिफैक्ट कब दिखते हैं
JPEG कंप्रेशन 8x8 पिक्सल ब्लॉक पर काम करता है. जब सोर्स इमेज में एक ही ब्लॉक के भीतर दो बहुत अलग रंगों के बीच कड़ा बदलाव हो, तो JPEG कंप्रेशन उस बदलाव को सीमित फ्रीक्वेंसी कोएफिशिएंट से लगभग बनाता है. नतीजा रिंगिंग है, किनारे के आसपास हल्के या गहरे पिक्सल का एक प्रभामंडल. फोटो में यह अदृश्य रहता है, क्योंकि किनारे कभी पूरी तरह तेज नहीं होते और असली फोटो में ऐसी सूक्ष्म भिन्नता रहती है जिससे वह अनुमान अच्छी तरह मेल खाता है. स्क्रीनशॉट, लोगो, कड़े बॉर्डर वाले UI तत्व, टेक्स्ट या पास-पास सपाट रंग के ब्लॉक में, रिंगिंग हर क्वालिटी सेटिंग पर साफ दिखती है, क्योंकि वही ऐसा सिग्नल है जिसे यह तरीका ठीक से नहीं संभालता. सलाह सीधी है, स्क्रीनशॉट, लोगो या टेक्स्ट-भारी इमेज को JPG में मत बदलिए. उन्हें PNG रखिए, या समस्या से पूरी तरह बचने वाली छोटी फाइल के लिए WebP इस्तेमाल कीजिए.
व्यवहार में निजता
रूपांतरण कहाँ होता है यह फ़ाइलों की संख्या पर निर्भर करता है। एक छवि के लिए सारा काम ब्राउज़र टैब में होता है और कोई डेटा अपलोड नहीं होता। एन्कोडिंग के दौरान सूची खाली रहती है। दो या अधिक फ़ाइलों के लिए RoundCut उन्हें हमारे सर्वर पर भेजता है, जो बदलकर परिणाम को पैक करके एक डाउनलोड लिंक लौटाता है। वह लिंक और बदली हुई फ़ाइलें करीब 2 घंटे में हटा दी जाती हैं। एक छवि का रास्ता पूरी तरह आपके डिवाइस पर, नेटवर्क के बाहर चलता है, जबकि बैच का रास्ता इसे एक बार में कई फ़ाइलें बदलने की सुविधा से बदल देता है। संवेदनशील सामग्री वाली छवियों के लिए, जैसे किसी निजी दस्तावेज़ का स्क्रीनशॉट या स्थान डेटा वाली तस्वीर, एक-एक कर बदलना सब कुछ स्थानीय रखता है।