दोबारा एन्कोड करने पर क्या बचता है और क्या छूट जाता है
इमेज फ़ाइल यानी पिक्सेल, और उनके बारे में कुछ दावे: वे नंबर किस कलर स्पेस में मापे गए हैं, अल्फ़ा चैनल है या नहीं, कैमरे ने EXIF में क्या दर्ज किया — मॉडल, एक्सपोज़र, तारीख़, अक्सर GPS लोकेशन — और GIF, WebP व AVIF में, एक से ज़्यादा फ़्रेम हैं या नहीं। यहां का लगभग हर काम फ़ाइल को डीकोड करके नई फ़ाइल लिखता है, और इनमें से हर दावे का हश्र अलग होता है।
पहला मोड़ है लॉसी और लॉसलेस। PNG और BMP ठीक-ठीक पिक्सेल रखते हैं, इसलिए उन्हें सौ बार दोबारा सेव करने से भी कुछ नहीं बदलता। JPG, AVIF और सामान्य WebP वह बारीकी हटा देते हैं जिसे आंख मुश्किल से पकड़ती है, और हटाया गया हिस्सा हमेशा के लिए चला जाता है — JPG को PNG में बदलने से वह वापस नहीं आता, बस आगे का नुक़सान रुकता है। इसीलिए JPEG को दो बार सेव करना एक बार सेव करने से बुरा है: दूसरा एन्कोड उन पिक्सेल को फिर से क्वांटाइज़ करता है जो पहले ही क्वांटाइज़ हो चुके हैं, और अगर बीच में तस्वीर क्रॉप या रीसाइज़ हुई, तो नया 8×8 ब्लॉक ग्रिड पुराने से मेल नहीं खाता, इसलिए ग़लतियां दोहराने की बजाय जुड़ती जाती हैं। जब तक ओरिजिनल आपके पास है, उसी से काम करें।
क्रोमा सबसैंपलिंग ही वह ख़ास वजह है जिससे JPG स्क्रीनशॉट ग़लत दिखता है। JPEG आम तौर पर ब्राइटनेस को पूरे रेज़ोल्यूशन पर और रंग को आधे पर रखता है, जो फ़ोटो पर दिखता नहीं और लाल टेक्स्ट या पतली रंगीन लाइन पर साफ़ दिखता है। अगर आपकी इमेज स्क्रीनशॉट, लोगो या डायग्राम है, तो सही फ़ॉर्मैट PNG या WebP है, JPG नहीं।
ट्रांसपेरेंसी को कहीं तो जाना होगा। JPG में अल्फ़ा चैनल है ही नहीं, इसलिए PNG को JPG में बदलें और AVIF को JPG में बदलें आपसे पूछते हैं कि ट्रांसपेरेंट पिक्सेल की जगह कौन-सा रंग आए, बजाय आपकी जानकारी के बिना उन्हें सफ़ेद — या काले — पर फ़्लैटन करने के। PNG, WebP और AVIF तीनों पूरा अल्फ़ा रखते हैं, इसलिए PNG को WEBP में बदलें और बैकग्राउंड हटाएं से बने कट-आउट अपने मुलायम किनारे बरक़रार रखते हैं।
EXIF नहीं बचता। दोबारा एन्कोड करने वाला हर टूल — कन्वर्ट, कंप्रेस, रीसाइज़, रोटेट, क्रॉप — बिना EXIF ब्लॉक वाली साफ़ फ़ाइल लिखता है, इसलिए कैमरा मॉडल, टाइमस्टैम्प और GPS लोकेशन हट जाते हैं। कोई फ़ोटो पब्लिश करने से पहले आप ठीक यही चाहते हैं। ओरिएंटेशन EXIF का इकलौता हिस्सा है जो दिखने पर असर डालता है, और इमेज रोटेट करें असली पिक्सेल घुमाकर इससे बच निकलता है, इसलिए नतीजा उन व्यूअर में भी सीधा दिखता है जो यह फ़्लैग अनदेखा करते हैं और उनमें भी जो मानते हैं।
कलर प्रोफ़ाइल साथ नहीं जातीं, कन्वर्ट होती हैं। आपका ब्राउज़र Display P3 या Adobe RGB फ़ाइल को दिखाने के लिए sRGB में डीकोड करता है, और वापस लिखी गई फ़ाइल में कोई प्रोफ़ाइल एम्बेड नहीं होती। साधारण स्क्रीन पर कुछ नहीं बदलता; वाइड-गैमट स्क्रीन पर सबसे गहरे रंग कट चुके होते हैं। TIFF को JPG में बदलें भी इसी रास्ते से गुज़रता है, इसीलिए CMYK स्टूडियो TIFF RGB बनकर निकलती है, और अगर रंगों की प्रूफ़िंग हो रही है तो उसे प्रीप्रेस सॉफ़्टवेयर में ही रहना चाहिए।
एनिमेशन स्थिर तस्वीर बन जाता है। एनिमेटेड GIF, WebP और AVIF फ़ाइलें अपने पहले फ़्रेम के रूप में कन्वर्ट होती हैं। GIF को PNG में बदलें से लोग आम तौर पर यही चाहते हैं, और बारह सेकंड का लूप उस पर डालने से पहले यह जान लेना अच्छा है।
जहां ब्राउज़र सच में सही टूल नहीं है
ये टूल आपकी फ़ाइल निजी रखने के लिए बने हैं, और इसकी कुछ क़ीमत है। हम चाहेंगे कि आपको यह यहीं बता दें, बजाय इसके कि आधे काम के बीच पता चले।
बहुत बड़ी इमेज। हर पिक्सेल आपके डिवाइस की मेमोरी में, डीकंप्रेस करके रखा जाता है — 100 मेगापिक्सेल की इमेज कुछ और होने से पहले ही कच्चे RGBA के रूप में लगभग 400 MB की होती है। इससे कहीं आगे टैब की जगह ख़त्म हो जाती है, और 4× अपस्केल उस सीमा तक और जल्दी पहुंचता है, आम लैपटॉप पर लगभग 6000×6000 के आउटपुट पर। डिस्क से टाइल स्ट्रीम करने वाले डेस्कटॉप टूल की ऐसी कोई सीमा नहीं होती।
कैमरा RAW। CR2, NEF, ARW और DNG फ़ाइलें सेंसर डेटा और डेवलपमेंट की एक विधि होती हैं, तैयार तस्वीरें नहीं, और यहां का कोई टूल उन्हें नहीं खोलता। पहले अपने कैमरा सॉफ़्टवेयर से JPEG या TIFF एक्सपोर्ट करें, या darktable या RawTherapee इस्तेमाल करें — दोनों मुफ़्त हैं, और दोनों यह काम किसी भी वेब पेज से कहीं बेहतर करते हैं।
प्रिंट के रंग। स्पॉट कलर, CMYK सेपरेशन, ICC रेंडरिंग इंटेंट और सॉफ़्ट-प्रूफ़िंग प्रीप्रेस सॉफ़्टवेयर का काम हैं। हम रंग को sRGB में बदलते हैं ताकि ब्राउज़र उसे दिखा सके; उसे मैनेज नहीं करते।
बैच और ऑटोमेशन। ये टूल तब चलते हैं जब कोई व्यक्ति क्लिक करता है। तय समय पर चालीस हज़ार प्रोडक्ट फ़ोटो का साइज़ बदलना सर्वर पर कमांड-लाइन टूल का काम है, और मुफ़्त टूल बेहतरीन हैं: लगभग हर चीज़ के लिए ImageMagick, बड़ी फ़ाइलों पर रफ़्तार और कम मेमोरी के लिए libvips, आख़िरी बाइट तक निचोड़ने के लिए mozjpeg और oxipng, और फ़्रेम वाली किसी भी चीज़ के लिए ffmpeg।
बैकग्राउंड हटाने की एक असली सीमा है। यह एक बार डाउनलोड होता है, 40–85 MB, और साफ़ सब्जेक्ट पर सच में अच्छा है, बाल और फ़र समेत, पर बिना किसी साफ़ सब्जेक्ट वाले भीड़-भाड़ भरे सीन पर सच में उलझ जाता है। कितनी भी लोकल कंप्यूटिंग इसे ठीक नहीं करती; यह तरीक़े की ही सीमा है, और पेड सर्विसेज़ की भी यही सीमा है।
मिलते-जुलते नाम वाले टूल्स में से कैसे चुनें
इमेज कंप्रेस करें बनाम इमेज का साइज़ बदलें। कंप्रेस डाइमेंशन वही रखता है और हर पिक्सेल पर कम बाइट ख़र्च करता है। साइज़ बदलना डाइमेंशन बदलता है, जिससे पिक्सेल पूरी तरह हट जाते हैं। 4000px की जिस फ़ोटो को 200 KB का होना है, उसके लिए पहले साइज़ बदलना और फिर कंप्रेस करना हर बार सिर्फ़ कंप्रेस करने से बेहतर है — और साइज़ बदलना उस मायने में लॉसलेस है जो मायने रखता है, क्योंकि जो पिक्सेल बचते हैं वे ख़राब नहीं होते, ठीक से रीसैंपल होते हैं।
इमेज का साइज़ बदलें बनाम इमेज अपस्केल करें। दोनों डाइमेंशन बदलते हैं, और उल्टी दिशाओं के लिए ट्यून किए गए हैं। साइज़ बदलना चीज़ों को छोटा करने के लिए है, Lanczos फ़िल्टर के साथ ताकि छोटा होने पर भी बारीकी बची रहे। अपस्केल 2× और 4× बड़ा करने के लिए है, और बाद में किनारों को पहचानकर शार्प करने वाला एक पास जोड़ता है, क्योंकि बड़ा करने पर तस्वीर हमेशा थोड़ी धुंधली होती है। दोनों में से कोई बारीकी गढ़ता नहीं — जो निकलता है, वह आपकी इमेज में था।
ICO में बदलें बनाम फ़ेविकॉन बनाएं। ICO में बदलें एक .ico फ़ाइल बनाता है जिसमें 16, 32, 48 और 256px वर्शन होते हैं — Windows ऐप्लिकेशन या शॉर्टकट को यही चाहिए। फ़ेविकॉन बनाएं पूरा आधुनिक सेट बनाता है — .ico, अलग-अलग PNG, Apple टच आइकन, वेब मैनिफ़ेस्ट और HTML टैग — ZIP में, और वेबसाइट को यही चाहिए।
PNG को WEBP में बदलें बनाम JPG को AVIF में बदलें। दोनों वेब इमेज को ओरिजिनल से छोटा बनाते हैं, और अलग-अलग सोर्स के लिए ठीक हैं। WebP ट्रांसपेरेंसी रखता है और पल भर में एन्कोड होता है, इसलिए स्क्रीनशॉट, लोगो और UI ग्राफ़िक्स के लिए सही फ़ॉर्मैट है। AVIF फ़ोटो को ज़्यादा कंप्रेस करता है — आम तौर पर बराबर क्वालिटी वाले JPG से 40–60 प्रतिशत छोटा — पर AV1 एन्कोडिंग भारी है, इसलिए हर बड़ी फ़ोटो पर कुछ सेकंड लगने की उम्मीद रखें।
इमेज ब्लर करें बनाम बैकग्राउंड हटाएं। ब्लर आपके बनाए हिस्से की जानकारी मिटा देता है: चेहरे, नंबर प्लेट, अकाउंट नंबर। बैकग्राउंड हटाएं सब्जेक्ट को बैकग्राउंड से अलग करता है और बैकग्राउंड पूरी तरह हटा देता है। अगर मक़सद कट-आउट नहीं, जानकारी छिपाना है, तो ब्लर करें — और टेक्स्ट पर मोटा पिक्सेलेशन इस्तेमाल करें, क्योंकि कमज़ोर पिक्सेलेशन को प्रकाशित रिसर्च में उलटा जा चुका है।