इस पेज का कोड चालू नहीं हुआ।

index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए कोई तस्वीर चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:

powershell -ExecutionPolicy Bypass -File serve.ps1

फिर http://localhost:8080/ खोलिए।

इमेज कंप्रेसर — तय साइज़ तक कंप्रेस कीजिए

साइज़ आप बताइए। बाकी हिसाब यह लगा लेगा।

भाषा: हिन्दी
कोड देखें
यह टूल तस्वीरें कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।

कंप्रेशन आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर, उन्हीं एनकोडरों से होता है जो उसमें पहले से मौजूद हैं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं। न कुछ मँगाने का रास्ता, न कुछ भेजने का। और मान लीजिए कोई रास्ता होता भी, तो इस पेज के दूसरी तरफ़ ऐसा कोई सर्वर ही नहीं है जिसे तस्वीर भेजी जा सके।

लाइव जाँच: जाँच जारी…

ऑफ़लाइन: जाँच जारी…

हमारी बात पर भरोसा मत कीजिए। DevTools खोलिए, Network टैब पर नज़र रखिए, और कोई फ़ोटो कंप्रेस कीजिए। एक भी रिक्वेस्ट में न कोई तस्वीर जाती है, न थंबनेल, न फ़ाइल का नाम, न आपकी चुनी फ़ाइल का एक बाइट। या फिर इंटरनेट काट दीजिए और तब भी कोई तस्वीर कंप्रेस करके देखिए।

1 तस्वीरें चुनिए

2 बताइए कि यह कितनी बड़ी हो सकती है

यही वह हिस्सा है जिसे दूसरे कंप्रेसर उलटा कर देते हैं। वे आपको क्वालिटी का स्लाइडर थमा देते हैं, और अंदाज़ा आप लगाइए कि कौन-सी सेटिंग आपको दी गई सीमा के नीचे उतरेगी। इसके बजाय सीमा आप बता दीजिए। टूल उस सबसे ऊँची क्वालिटी को ढूँढ़ता है जो उसमें समा जाए, और आपके माँगे साइज़ से आधी फ़ाइल थमाने के बजाय बजट में जो बचा है वह भी खर्च कर देता है।

ज़रूरत पड़े तो तस्वीर छोटी कर सकता है यह सिर्फ़ तब काम आता है जब अकेली क्वालिटी को उस हद से नीचे गिरना पड़ता जहाँ से कंप्रेशन दिखने लगता है। उससे नीचे कम मगर अच्छे पिक्सल ज़्यादा मगर बिगड़े हुए पिक्सलों से बेहतर दिखते हैं। ठीक वही माप बनाए रखनी हो तो इसे बंद कर दीजिए, और तंग तय साइज़ की कीमत क्वालिटी से चुकाइए।

वहाँ तक पहुँचने के लिए यह क्या-क्या कर सकता है

3 कंप्रेस कीजिए

Markdown के रूप में देखें

किसी इमेज को तय साइज़ तक कैसे कंप्रेस करें

  1. अपनी तस्वीरें चुनिए। उन्हें पिकर पर छोड़ दीजिए, या हाथ से चुन लीजिए। ब्राउज़र उन्हें सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
  2. जो साइज़ आपसे माँगा गया है, वह टाइप कीजिए। जो अपलोड फ़ॉर्म आपकी फ़ोटो बार-बार लौटा रहा है उसके लिए 100 KB, आवेदन पोर्टल के लिए 500 KB, जल्दी खुलने वाले पेज के लिए 2 MB। चार सबसे आम साइज़ बटन की शक्ल में मौजूद हैं।
  3. “तय साइज़ तक कंप्रेस कीजिए” दबाइए। हर तस्वीर कई बार एनकोड होती है, और टूल उस सबसे ऊँची क्वालिटी तक पहुँचता जाता है जो तय साइज़ में समा जाए। जो पहले से तय साइज़ से नीचे है, उसे बिलकुल वैसा का वैसा छोड़ दिया जाता है।
  4. देखिए कीमत क्या पड़ी, फिर डाउनलोड कीजिए। हर नतीजा बता देता है कि वह किस फ़ॉर्मैट में लिखा गया, किस क्वालिटी पर, माप बदली या नहीं, और नापने पर वह असली तस्वीर से कितना मेल खाता है। “तुलना” दोनों तस्वीरें आमने-सामने रख देता है।

विस्तार से

किसी तस्वीर को ठीक तय फ़ाइल साइज़ तक कैसे कंप्रेस करें अपलोड फ़ॉर्म 500 KB माँग रहा है और आपकी फ़ोटो 4 MB की है। साइज़ की सीमा असल में क्या कीमत लेती है, पहले कौन-सी सेटिंग हिलानी है, और PNG वैसे क्यों नहीं सिकुड़ता जैसे JPEG सिकुड़ता है।

सवाल

क्या मेरी तस्वीर कहीं अपलोड होती है?

नहीं। फ़ाइल को डिकोड करने, कंप्रेस करने और नापने का काम आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है, उन्हीं JPEG, PNG और WebP एनकोडरों से जो ब्राउज़र में पहले से आते हैं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं। यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की Content-Security-Policy उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है।

यह ठीक तय साइज़ तक कैसे पहुँचता है?

आज़माकर। ऐसा कोई फ़ॉर्मूला है ही नहीं जो क्वालिटी की सेटिंग को बाइट की गिनती में बदल दे, क्योंकि यह पूरी तरह तस्वीर पर निर्भर करता है। इसलिए टूल तस्वीर को कई बार एनकोड करता है और जवाब ढूँढ़ता है। शुरुआत क्वालिटी की सबसे ऊपरी हद से होती है, फिर आधा-आधा करते हुए यह करीब आता जाता है, और सबसे ऊँची फिट होने वाली क्वालिटी लगभग आठ एनकोड में मिल जाती है। पेज पर आप जो भी साइज़ देखते हैं, वह सचमुच एनकोड की गई फ़ाइल का साइज़ है, कोई अनुमान नहीं।

यहाँ “कम से कम नुकसान” का मतलब असल में क्या है?

तीन ठोस बातें। पहली, जो तस्वीर पहले से आपके तय साइज़ से नीचे है, उसे दोबारा एनकोड करने के बजाय बाइट-दर-बाइट वैसी की वैसी आगे भेज दिया जाता है। दूसरी, रिज़ॉल्यूशन से पहले क्वालिटी खर्च होती है, और वह भी सिर्फ़ उस हद तक जहाँ से कंप्रेशन के दाग दिखने लगते हैं। उससे नीचे टूल तस्वीर को छोटा कर देता है और क्वालिटी वापस ऊपर उठा देता है, क्योंकि कम मगर अच्छे पिक्सल ज़्यादा मगर बिगड़े हुए पिक्सलों से बेहतर दिखते हैं। तीसरी, फिट होने वाला नतीजा मिल जाने के बाद खोज उसे दोबारा ऊपर की ओर धकेलती रहती है, जब तक बजट पूरा खर्च न हो जाए। यानी 500 KB माँगने पर आपको 300 KB की फ़ाइल नहीं मिलती।

हर नतीजे पर लिखे SSIM और PSNR के आँकड़े क्या हैं?

ये नापते हैं कि कंप्रेशन की कीमत क्या पड़ी। नतीजे को दोबारा डिकोड करके असली तस्वीर से मिलाया जाता है। SSIM स्थानीय चमक, कंट्रास्ट और बनावट को मिलाकर देखता है, और यह बदले हुए पिक्सल गिनने के मुकाबले उस बात के कहीं ज़्यादा करीब है जिस पर आँख को एतराज़ होता है। लगभग 0.98 से ऊपर दोनों तस्वीरें आमने-सामने रखकर भी अलग बता पाना मुश्किल है। PSNR वही पुराना डेसिबल वाला आँकड़ा है। दोनों आपके अपने डिवाइस पर निकाले जाते हैं, और दोनों इसीलिए दिखाए जाते हैं ताकि कम नुकसान का दावा सिर्फ़ दावा न रहे, जाँचा जा सके।

यह कौन-कौन से फ़ॉर्मैट पढ़ और लिख सकता है?

यह वह सब पढ़ लेता है जो आपका ब्राउज़र डिकोड कर सकता है, यानी व्यवहार में JPEG, PNG, WebP, GIF, BMP, और ज़्यादातर मौजूदा ब्राउज़रों में AVIF भी। लिखता यह JPEG, PNG और WebP है, क्योंकि ब्राउज़र यही एनकोडर साथ लाते हैं। “अपने आप” पर यह वही फ़ॉर्मैट बनाए रखता है जिसमें आपकी फ़ाइल आई थी, और WebP पर सिर्फ़ तब जाता है जब वही फ़ॉर्मैट रखने का मतलब होता आकार घटाना या क्वालिटी में दिखने लायक गिरावट।

PNG को बहुत ज़्यादा कंप्रेस क्यों नहीं किया जा सकता?

क्योंकि PNG नुकसान-रहित है, और इसमें घुमाने के लिए क्वालिटी का कोई बटन ही नहीं होता। PNG को छोटा करने का अकेला रास्ता है कम पिक्सल या कम रंग, इसलिए PNG चुने होने पर टूल तय साइज़ तक सिर्फ़ आकार घटाकर पहुँचता है। तस्वीर अगर कोई फ़ोटोग्राफ़ है, तो JPEG या WebP आपके तय साइज़ के कहीं ज़्यादा करीब पहुँचेंगे, और क्वालिटी ऐसी रहेगी जिसे देखकर आप खुद कह देंगे कि ठीक है। और अगर यह कोई लोगो या पारदर्शिता वाला स्क्रीनशॉट है, तो WebP वह पारदर्शिता बचा लेता है जिसे JPEG सफ़ेद रंग से भर देता।

क्या तस्वीर कंप्रेस करने से उसका EXIF और GPS डेटा हट जाता है?

हाँ, एक साइड इफ़ेक्ट के तौर पर। कंप्रेस करने का मतलब है तस्वीर को पिक्सलों में डिकोड करना और उन्हीं पिक्सलों को दोबारा एनकोड करना, और पिक्सलों से भरा कैनवस कोई टैग नहीं ढोता। इसलिए जगह, कैमरे का मॉडल, समय और बाकी सब कुछ नई फ़ाइल में लिखे ही नहीं जाते। मेटाडेटा हटाना है पर तस्वीर छूनी नहीं है, तो इसके बजाय EXIF व्यूअर और रिमूवर इस्तेमाल कीजिए। वह कंटेनर दोबारा लिखता है, कुछ भी दोबारा कंप्रेस किए बिना।

क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?

यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, न वॉटरमार्क। फ़ाइलों की गिनती या साइज़ पर भी कोई सीमा नहीं है, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। काम आपके अपने डिवाइस पर होता है। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी तस्वीरों के बारे में कुछ नहीं दिया जाता।

क्या यह ऑफ़लाइन चलता है?

हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, यह चलता रहेगा। कुछ अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है। जो टूल आपकी तस्वीरें कंप्रेस करने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।