असली फॉर्मेट बदलाव, सिर्फ नाम बदलना नहीं
.png फाइल का नाम बदलकर .gif कर देने से कोई सही GIF नहीं बनती — दोनों फॉर्मेट की अंदरूनी डेटा संरचना पूरी तरह अलग है। असली कन्वर्ज़न के लिए PNG का पिक्सल डेटा डिकोड करके उसे GIF की अपनी कम्प्रेशन स्कीम से दोबारा एन्कोड करना पड़ता है, जिसमें एक खास, सख्त सीमा है जो PNG में नहीं है: पूरी इमेज में कुल ज्यादा से ज्यादा 256 रंग।
यही एक सीमा इस बात की पूरी वजह है कि PNG-to-GIF कन्वर्ज़न में असल में सोच-समझकर काम करना पड़ता है, सिर्फ फॉर्मेट बदलना काफी नहीं — एक सामान्य PNG फोटो में आसानी से दसियों हज़ार अलग रंग हो सकते हैं, और उन सबको 256 या उससे कम में समेटना पड़ता है।
एक अच्छा कन्वर्टर कौन-से 256 रंग रखने का फैसला कैसे करता है
सिर्फ 256 मनमाने या बराबर दूरी वाले रंग चुनने से नतीजा साफ खराब दिखता है — बैंडिंग, गलत लगने वाले रंग, भद्दे ट्रांज़िशन। एक सही ढंग से बना कन्वर्टर इसके बजाय इमेज के असली रंग वितरण का विश्लेषण करता है और ऐसा पैलेट चुनता है जो तस्वीर में असल में जो है उसे सबसे बेहतर दिखाए — इसे कलर क्वांटाइज़ेशन कहते हैं (median-cut इसके लिए एक स्टैंडर्ड, स्थापित एल्गोरिथम है)।
यह उन फोटो और इमेज के लिए सबसे ज्यादा मायने रखता है जिनमें स्मूद ग्रेडिएंट या मिलते-जुलते पर अलग-अलग रंग ज्यादा हों — रंग चुनने की क्वालिटी ही तय करती है कि नतीजा असली इमेज के करीब दिखेगा या साफ बिगड़ा हुआ।
कन्वर्ज़न कब असल में पूरी तरह लॉसलेस होता है
अगर आपकी सोर्स PNG में पहले से ही 256 या उससे कम अलग रंग हैं — जो ज्यादातर आइकन, लोगो और सादे फ्लैट-कलर ग्राफिक्स के लिए सच है — तो GIF में कन्वर्ज़न उसी असली पैलेट को बिना किसी रंग नुकसान के इस्तेमाल कर सकता है। यह वह मामला है जो हर बार चुपचाप बिल्कुल सही काम करता है: सादे ग्राफिक्स साफ-साफ कन्वर्ट होते हैं, जबकि हज़ारों रंगों वाली फोटोग्राफिक इमेज में ही साफ समझौता दिखता है।
कन्वर्ट करने से पहले यह जान लेना कि आपकी इमेज किस श्रेणी में आती है, सही उम्मीद तय करता है — कंपनी का लोगो बिल्कुल एक जैसा दिखेगा; एक डिटेल्ड फोटोग्राफ में क्वांटाइज़ेशन एल्गोरिथम चाहे जितना अच्छा हो, कुछ रंग सरलीकरण दिखेगा ही।
ट्रांसपेरेंसी का ट्रेड-ऑफ जो जानना जरूरी है
PNG स्मूद, धीरे-धीरे बदलने वाली अल्फा ट्रांसपेरेंसी सपोर्ट करता है — अर्ध-पारदर्शी किनारे, हल्के शैडो, धीमे फेड। GIF की ट्रांसपेरेंसी कहीं ज्यादा सीमित है: कोई पिक्सल या तो पूरी तरह पारदर्शी है या पूरी तरह ओपेक, बीच का कुछ नहीं। इसे सही तरीके से हैंडल करने वाला कन्वर्टर आंशिक-पारदर्शी हिस्सों को एक ठोस रंग (आमतौर पर सफेद) से भर देता है, बजाय इसके कि GIF में जो असल में मुमकिन ही नहीं उसकी नकल करने की कोशिश करे — क्योंकि जो फॉर्मेट सपोर्ट ही नहीं करता उसमें धीमी ट्रांसपेरेंसी की नकल करना नतीजे को बेहतर नहीं, और उलझा देगा।