AVIF to PNG: ट्रांसपेरेंसी के लिए, और उन इमेजेस के लिए जिन्हें आप आगे एडिट करेंगे
AVIF ट्रांसपेरेंसी सपोर्ट करता है, और ज़्यादातर कन्वर्टर उसे उड़ा देते हैं। किसी लापरवाह टूल में साफ़ कोनों वाला लोगो डालिए और उसके पीछे एक सफेद बॉक्स आ जाएगा, या फिर काला। यहाँ JPG के बजाय PNG चुनने की सबसे बड़ी वजह यही है: PNG में असली अल्फा चैनल होता है, इसलिए कट आउट इमेज आपको सीधे स्लाइड, मॉकअप या प्रोडक्ट पेज पर रखने लायक मिलती है।
दूसरी वजह एडिटिंग है। PNG का कंप्रेशन लॉसलेस है, यानी उसे जो पिक्सल दिए गए वही स्टोर करता है और उससे आगे कुछ नहीं फेंकता। इसकी जगह JPG में कन्वर्ट कर दिया तो हर अगले सेव पर पहले से मौजूद आर्टिफैक्ट्स के ऊपर नए आर्टिफैक्ट्स चढ़ते जाते हैं। अगर इमेज किसी डिज़ाइन टूल में जानी है, या आप उसे दो चार बार क्रॉप करके दोबारा एक्सपोर्ट करने वाले हैं, तो PNG हर राउंड ट्रिप पर आपसे कुछ नहीं वसूलता।
ट्रांसपेरेंसी टेस्ट, पिक्सल दर पिक्सल
हमने तीन वर्टिकल बैंड वाली एक AVIF फाइल बनाई: एक पूरी तरह क्लियर, एक ठीक आधी ट्रांसपेरेंट, और एक पूरी तरह ओपेक। फिर उसे अपने ही सर्वर पर हर सेटिंग से कन्वर्ट किया और आउटपुट को पिक्सल दर पिक्सल जाँचा।
| सेटिंग | क्लियर हिस्सा | आधा ट्रांसपेरेंट हिस्सा | ओपेक हिस्सा |
|---|---|---|---|
| Recommended | क्लियर ही रहा | ठीक आधा ही रहा | ओपेक ही रहा |
| Smallest, 64 कलर | क्लियर ही रहा | ठीक आधा ही रहा | ओपेक ही रहा |
| Palette compression बंद | क्लियर ही रहा | ठीक आधा ही रहा | ओपेक ही रहा |
पार्शियल ओपेसिटी 64 कलर पर भी बच गई। यही वह केस है जहाँ ज़्यादातर कन्वर्टर फेल होते हैं, क्योंकि सीमित पैलेट में उसके लिए कोई साफ़ जगह नहीं दिखती, और आम नतीजा यह होता है कि सॉफ्ट शैडो एक सख्त किनारे में बदल जाती है। यहाँ किसी भी सेटिंग पर इमेज को किसी बैकग्राउंड कलर के ऊपर नहीं बिठाया जाता। वही फाइल जब AVIF से JPG कन्वर्ज़न से गुज़री तो उसका क्लियर बैंड एक ठोस रंग से भर गया, क्योंकि JPEG के पास ट्रांसपेरेंसी स्टोर करने का कोई तरीका है ही नहीं।
हम आपसे कोई परसेंटेज क्यों नहीं कहते
Palette compression डिफ़ॉल्ट रूप से ऑन रहता है, क्योंकि किसी फोटो का फुल कलर PNG बहुत भारी होता है और सामान्य zlib उसमें मुश्किल से कोई फर्क डालता है। वह कितना बचाएगा यह पूरी तरह इमेज पर निर्भर करता है। यह रही वही 1200 x 900 वाली AVIF फाइल, डिस्क पर 21 KB, हर सेटिंग पर कन्वर्ट करके:
| सेटिंग | पैलेट | PNG आउटपुट | क्या हुआ |
|---|---|---|---|
| Fast | 256 कलर | 281 KB | फुल कलर PNG ही रखा गया, पैलेट वाला वर्ज़न बड़ा निकला |
| Recommended | 128 कलर | 223 KB | पैलेट इस्तेमाल हुआ |
| Smallest | 64 कलर | 197 KB | पैलेट इस्तेमाल हुआ |
| Palette compression बंद | कोई नहीं | 227 KB | पूरी तरह लॉसलेस, फुल कलर |
इस खास इमेज पर पैलेट ने कुछ भी नहीं बचाया, और 256 कलर पर तो फाइल और बड़ी कर देता, इसलिए टूल ने उसे छोड़कर फुल कलर वर्ज़न रख लिया। किसी फ्लैट लोगो या स्क्रीनशॉट पर यही सेटिंग फाइल को आधे से भी कम कर सकती है। इसी वजह से इस पूरे पेज पर कहीं कोई परसेंटेज नहीं लिखा है। वादा करने लायक बात सिर्फ वही है जो हम निभा सकते हैं: आपको हमेशा वही वर्ज़न मिलता है जो छोटा हो, और नतीजा आपको बता देता है कि कौन सा वर्ज़न मिला।
मान कर चलिए कि PNG आपकी AVIF से कई गुना बड़ा होगा
AVIF एक मॉडर्न लॉसी कोडेक है जिसे ऐसी डिटेल फेंकने की छूट है जो आपकी आँख को मिस नहीं होगी। PNG को हर दिया गया पिक्सल दर्ज करना ही पड़ता है। जो फोटो AVIF में कुछ सौ किलोबाइट में समा जाती है, वही फुल कलर PNG में मेगाबाइट्स में चली जाती है, और यह लॉसलेस होने की कीमत है, कन्वर्ज़न की कोई खराबी नहीं। अगर PNG फिर भी आपके काम के लिए भारी है, तो इमेज शायद एक फोटो है और उसके लिए AVIF to JPG बेहतर जवाब है।
स्क्रीनशॉट और टेक्स्ट शार्प रहते हैं
तेज़ किनारे, इंटरफेस का टेक्स्ट और फ्लैट कलर ब्लॉक वही चीज़ें हैं जिन्हें JPEG सबसे बुरी तरह संभालता है। वह छोटे चौकोर ब्लॉक में काम करता है और हर अक्षर के चारों ओर साफ़ दिखने वाला हेलो छोड़ जाता है। PNG उन किनारों को हूबहू स्टोर करता है, इसलिए स्क्रीनशॉट का टेक्स्ट उतना ही क्रिस्प निकलता है जितना AVIF में था। फ्लैट ग्राफिक्स ही वह जगह भी है जहाँ Palette compression सबसे ज़्यादा फायदा देता है, क्योंकि स्क्रीनशॉट या लोगो में सचमुच गिने चुने रंग होते हैं। ग्रेडिएंट वाले स्क्रीनशॉट के लिए, जहाँ आपको बचत नहीं बल्कि पक्का भरोसा चाहिए, Palette compression बंद कर दीजिए और हर रंग रहने दीजिए।
पैलेट खुद तय कीजिए
कंप्रेशन सेटिंग के नीचे कलर की संख्या के लिए एक Colours फील्ड है। उसे छेड़िए मत तो हर सेटिंग अपना डिफ़ॉल्ट इस्तेमाल करेगी। या 2 से 256 के बीच कोई भी संख्या डाल दीजिए और पैलेट बिल्कुल उतना ही मिलेगा, जो तब काम आता है जब आप किसी मौजूदा एसेट से मैच कर रहे हों या किसी आइकन को आखिरी हद तक निचोड़ रहे हों। Palette compression पूरी तरह बंद करने पर आपको पिक्सल दर पिक्सल हूबहू, फुल कलर PNG मिलता है।
ओरिएंटेशन, कलर और डाइमेंशन
फोन की फोटो का ओरिएंटेशन टैग कुछ भी लिखे जाने से पहले लागू होता है और फिर आउटपुट से हटा दिया जाता है, इसलिए आपकी इमेज सीधी आती है और कोई व्यूअर उसे दूसरी बार नहीं घुमाता। वाइड गैमट Display P3 प्रोफाइल को हटाने के बजाय PNG में एम्बेड किया जाता है, और सही रंग तथा नियॉन जैसे भड़कीले आसमान के बीच का फर्क यही है; और जब आपकी डेस्टिनेशन प्रोफाइल को अनदेखा करती हो तो Colour profile सेटिंग इमेज को ठीक से sRGB में बदल देती है। पिक्सल डाइमेंशन कभी नहीं बदलते। यहाँ फॉर्मेट कन्वर्ट होता है, साइज़ नहीं।
नाम बदली हुई और एनिमेटेड फाइलें
फॉर्मेट फाइल के अपने बाइट्स से पढ़ा जाता है, इसलिए जिस AVIF को किसी ने .jpg नाम से सेव कर दिया हो वह भी सही कन्वर्ट होती है। एनिमेटेड AVIF आपको उसका पहला फ्रेम एक स्टिल इमेज के रूप में देती है, और नतीजा यह बात साफ़ बता देता है। एनिमेटेड PNG नहीं बनाया जाता, क्योंकि एक एनिमेशन को लगभग एक जैसे सैकड़ों फ्रेम में खोल देना वह चीज़ नहीं है जो एक फाइल कन्वर्ट करने वाला माँग रहा होता है।
आपको क्या मिलता है
- ट्रांसपेरेंट बैकग्राउंड पूरा का पूरा, पार्शियल ओपेसिटी और सॉफ्ट शैडो समेत
- लॉसलेस कंप्रेशन, यानी बाद में क्रॉप करने और दोबारा एक्सपोर्ट करने की कोई अतिरिक्त कीमत नहीं
- जो भी छोटा हो, पैलेट वाला वर्ज़न या फुल कलर वाला, और यह फैसला हर फाइल के लिए अलग होता है
- जब चाहें अपनी मर्ज़ी का पैलेट साइज़, 2 से 256 कलर तक
- फोटो सीधी, वाइड गैमट कलर बरकरार या माँगने पर sRGB में कन्वर्ट
- वही पिक्सल डाइमेंशन जिनसे आपने शुरू किया था, हर बार
आगे क्या?
क्या इमेज बिना ट्रांसपेरेंसी वाली आम फोटो है? AVIF to JPG उसी इमेज के लिए कहीं छोटी फाइल देगा।
PNG उम्मीद से भारी निकला? Compress PNG उसे डाइमेंशन छेड़े बिना और घटा देता है।
इमेज को बाद में किसी वेबसाइट पर लगाना है? PNG to WebP ट्रांसपेरेंसी बनाए रखता है और ब्राउज़र के लिए वज़न कम कर देता है।