इमेज का फ़ाइल साइज़ कैसे घटाएँ
अपलोड फ़ॉर्म 2 MB से कम माँग रहा है और मेरी फ़ोटो 8 MB की है। मुझे असल में बदलना क्या है?
तीन लीवर, और उनमें एक सबसे भारी पड़ता है
हर इमेज कम्प्रेसर तीन लीवरों के किसी न किसी मेल को खींच रहा होता है: इमेज में कितने पिक्सेल हैं, एन्कोडर को कितनी डिटेल फेंकने की इजाज़त है, और वह कौन-सा फ़ॉर्मैट लिखता है। लोग सबसे पहले क्वालिटी स्लाइडर पर हाथ डालते हैं, क्योंकि हर टूल सबसे पहले वही दिखाता है। शुरुआत के लिए आम तौर पर वह ग़लत जगह है।
डाइमेंशन सबसे भारी पड़ते हैं, क्योंकि फ़ाइल साइज़ मोटे तौर पर पिक्सेल की संख्या के साथ बढ़ता है और पिक्सेल की संख्या लंबाई-चौड़ाई के वर्ग के साथ। चौड़ाई और ऊँचाई आधी कर दें तो पिक्सेल एक-चौथाई रह जाते हैं। क्वालिटी स्लाइडर से आप जो कुछ भी करें वह इतना निर्णायक नहीं होता, और किसी और चीज़ की कीमत दिखने वाली क्वालिटी में इतनी कम नहीं पड़ती — बशर्ते नतीजा उस डिब्बे से बड़ा रहे जिसमें वह दिखाया जाएगा।
पता कीजिए कि आपको असल में कितने पिक्सेल चाहिए
आजकल का फ़ोन कैमरा करीब 4000 पिक्सेल चौड़ी इमेज बनाता है। लैपटॉप पर पूरी स्क्रीन की फ़ोटो करीब 1500 से 2000 पिक्सेल चौड़ी दिखती है, और किसी लेख के भीतर लगी फ़ोटो अक्सर 800 पर दिखती है। 800 दिखाने वाले डिब्बे में 4000 पिक्सेल भेजने का मतलब है कि डाउनलोड हो जाने के बाद देखने वाले का सॉफ़्टवेयर करीब 96 प्रतिशत पिक्सेल फेंक देता है।
| सबसे लंबा किनारा | अनुमानित पिक्सेल | 4000 px वाले मूल का हिस्सा |
|---|---|---|
| 4000 px | 1.07 करोड़ | 100% |
| 2560 px | 44 लाख | 41% |
| 1920 px | 25 लाख | 23% |
| 1280 px | 11 लाख | 10% |
| 800 px | 4 लाख | 4% |
ये प्रतिशत गणित हैं, किसी खास फ़ाइल की माप नहीं — कम्प्रेस्ड फ़ाइल अपने पिक्सेल की संख्या के ठीक अनुपात में नहीं सिकुड़ती। फिर भी सबसे पहले देखने लायक यही हैं, क्योंकि ये बताते हैं कि डिटेल फेंकना शुरू करने से पहले रीसाइज़ एन्कोडर को कितनी गुंजाइश दे रहा है।
क्वालिटी स्लाइडर कर क्या रहा है
JPEG एन्कोडर में क्वालिटी का नंबर उन भाजकों की टेबल को घटाता-बढ़ाता है जो हर 8×8 ब्लॉक के फ़्रीक्वेंसी कोएफ़िशिएंट पर लगाई जाती है। कम क्वालिटी यानी मोटा भाग, यानी ज़्यादा कोएफ़िशिएंट शून्य पर पहुँच जाते हैं, यानी कम बिट। दिखने वाला नुकसान सबसे पहले तीखे किनारों के आसपास और सपाट ग्रेडिएंट में आता है: टेक्स्ट के पास रिंगिंग, और आसमान में बैंडिंग।
यह पैमाना न रैखिक है और न फ़ॉर्मैट के आर-पार तुलनीय। JPEG एन्कोडर, WebP एन्कोडर और AVIF एन्कोडर की क्वालिटी 80 तीन अलग-अलग नंबर हैं जिनकी बस रेंज एक जैसी है। नतीजे को नंबर पर भरोसा करके नहीं, उसे पूरे साइज़ पर देखकर परखें।
टारगेट साइज़ एक खोज है, सेटिंग नहीं
कोई एन्कोडर “इसे 500 KB बना दो” को निर्देश की तरह नहीं लेता। वह एक क्वालिटी सेटिंग लेता है और उस खास इमेज पर उस सेटिंग से जो साइज़ बनता है वही बनाता है। इसलिए जो टूल आपको टारगेट साइज़ देता है वह असल में एक खोज चला रहा है: एन्कोड करो, नापो, क्वालिटी बदलो, फिर एन्कोड करो, और तब रुको जब नतीजा बजट के भीतर आ जाए या क्वालिटी की तली आ जाए।
इसीलिए टारगेट हमेशा बेस्ट-एफ़र्ट होता है। बारीकी और नॉइज़ से भरी, ऊँचे रेज़ॉल्यूशन वाली तस्वीर शायद किसी भी ऐसी क्वालिटी पर तंग बजट में न समाए जिसे कोई इंसान स्वीकार करे, और ईमानदार जवाब यही है कि तस्वीर बर्बाद होने तक चलते रहने के बजाय तली पर रुककर बता दिया जाए कि कहाँ रुके। FileSlimmer के टारगेट-साइज़ टूल पहले डाइमेंशन घटाते हैं, फिर तय सीमाओं के बीच क्वालिटी को संकरा करते हैं, और आख़िर में जिस सेटिंग पर रुके उसे बताते हैं।
तस्वीर को 1 MB से छोटा कैसे करें
शुरुआत फ़ोन की फ़ोटो को उन सबसे बड़े डाइमेंशन तक रीसाइज़ करने से करें जो मंज़िल को चाहिए। ईमेल, फ़ॉर्म और आम वेब पेज के लिए यह अक्सर कैमरे के मूल साइज़ से कहीं नीचे होता है। फिर ऊँची पर अधिकतम नहीं वाली क्वालिटी पर नया JPEG या WebP एन्कोड करें, नतीजा नापें, और अगर फ़ाइल तब भी 1 MB से ऊपर हो तभी क्वालिटी धीरे-धीरे घटाएँ।
अकेली क्वालिटी यह तय नहीं करती कि नतीजा 1 MB से नीचे आएगा या नहीं, क्योंकि बारीकी वाली इमेज को सादी इमेज से ज़्यादा डेटा चाहिए। अगर पहली कोशिश सीमा से चूक जाए, तो क्वालिटी और नीचे धकेलने से पहले डाइमेंशन घटाएँ। हर पिक्सेल बचाकर तेज़ ब्लॉक या रिंगिंग आर्टिफ़ैक्ट जोड़ने के मुकाबले यह आम तौर पर ज़्यादा स्वाभाविक दिखने वाली इमेज देता है।
जिनसे कोई मदद नहीं मिलती
- फ़ाइल को ZIP में डालना। कम्प्रेस्ड इमेज फ़ॉर्मैट में इतनी दोहराव बची ही नहीं होती कि कोई सामान्य कम्प्रेसर उसे पकड़ सके; आर्काइव आम तौर पर मूल साइज़ के आसपास ही रहता है।
- एक्सटेंशन का नाम बदलना। बाइट नहीं बदलते, और जो सॉफ़्टवेयर असली फ़ाइल सिग्नेचर पढ़ता है वह बस उलझ जाएगा।
- JPEG को उसी क्वालिटी पर दोबारा सेव करना। यह दूसरा लॉसी पास है: फ़ाइल किसी काम की हद तक छोटी नहीं होती और तस्वीर थोड़ी और बिगड़ जाती है।
- तस्वीर से मेटाडेटा हटाना, अगर मक़सद सिर्फ़ साइज़ है। कई मेगाबाइट पिक्सेल के सामने कुछ किलोबाइट EXIF कुछ भी नहीं। इसे प्राइवेसी के लिए हटाइए, जो असली वजह है, साइज़ के लिए नहीं।
एक वर्कफ़्लो जो आम तौर पर मंज़िल तक पहुँचाता है
- तय करें कि इमेज ज़्यादा से ज़्यादा जितने बड़े साइज़ पर दिखाई जाएगी वह कितना है, और सबसे लंबे किनारे को उतना कर दें।
- सामग्री के हिसाब से फ़ॉर्मैट चुनें: तस्वीरों के लिए लॉसी फ़ॉर्मैट, स्क्रीनशॉट और सपाट ग्राफ़िक्स के लिए लॉसलेस।
- ऊँची पर अधिकतम नहीं वाली क्वालिटी से शुरू करें और तब तक घटाते जाएँ जब तक नुकसान दिखने न लगे, फिर एक कदम वापस ऊपर आ जाएँ।
- नतीजे को पूरे साइज़ पर, उसी तरह की स्क्रीन पर देखें जिसके लिए वह बना है।
- अगर तब भी बहुत बड़ा है, तो पहले कदम पर लौटें। क्वालिटी के मुकाबले डाइमेंशन में लगभग हमेशा ज़्यादा गुंजाइश होती है।
यह कहाँ जाकर काम करना बंद कर देता है
कुछ इमेज इस सबका मुकाबला कर जाती हैं। बारीक टेक्स्ट से भरे स्कैन किए डॉक्यूमेंट को पढ़ने लायक बने रहने के लिए अपने पिक्सेल चाहिए, इसलिए रीसाइज़ करते ही नुकसान होता है और क्वालिटी घटाने से ठीक वही आर्टिफ़ैक्ट बनते हैं जो टेक्स्ट पढ़ना मुश्किल कर देते हैं। स्प्रेडशीट के स्क्रीनशॉट की भी यही दिक्कत है। इनके लिए सही जवाब अक्सर कम किलोबाइट नहीं, बल्कि कोई दूसरा फ़ॉर्मैट होता है — लॉसलेस, या PDF।
और अगर कोई पोर्टल आपकी फ़ाइल ठुकरा दे, तो देखिए कि सीमा फ़ाइल के साइज़ पर है या पिक्सेल डाइमेंशन पर। ये अलग-अलग सीमाएँ हैं, और जो फ़ाइल एक पर खरी उतरती है वह दूसरी पर फ़ेल हो सकती है।
इसके लिए टूल
स्रोत
- ITU-T T.81 — quantisation and the JPEG quality scale
- MDN — Image file type and format guide
- MDN — Responsive images and choosing a display width