यह पेज हिन्दी में दिखाया जा रहा है, क्योंकि आपका ब्राउज़र यही भाषा माँगता है।
इस पेज का कोड चालू नहीं हुआ।
index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए कोई तस्वीर चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:
ऊपर फ़ाइल चुनते ही यह खुल जाएगा।तैयार — इंटरनेट काट दीजिए, यह फिर भी चलता रहेगा।इस ब्राउज़र में उपलब्ध नहीं (बाकी सब फिर भी चलता है)।ऑफ़लाइन कैश के लिए https:// या localhost चाहिए।यहाँ कैश नहीं हो सकता, पर अपलोड फिर भी कुछ नहीं होता।आपकी फ़ाइलें कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।कुछ गड़बड़ हो गई: {detail}। दोबारा शुरू करने के लिए पेज फिर से लोड कीजिए।{count} फ़ाइल पढ़ी जा रही है…{count} फ़ाइलें पढ़ी जा रही हैं…कोई उदाहरण आज़माइएउदाहरण बनाया जा रहा है…यह ब्राउज़र उदाहरण नहीं बना सका। इसके बजाय कोई फ़ाइल चुनिए।
● यह टूल तस्वीरें कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।
कंप्रेशन आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर, उन्हीं एनकोडरों से होता है जो उसमें पहले से मौजूद हैं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं। न कुछ मँगाने का रास्ता, न कुछ भेजने का। और मान लीजिए कोई रास्ता होता भी, तो इस पेज के दूसरी तरफ़ ऐसा कोई सर्वर ही नहीं है जिसे तस्वीर भेजी जा सके।
✗ कोई अपलोड नहीं
✗ कोई खाता नहीं
✗ साइज़ की कोई सीमा नहीं
✓ ऑफ़लाइन चलता है
✓ ओपन सोर्स
लाइव जाँच:जाँच जारी…
ऑफ़लाइन:जाँच जारी…
हमारी बात पर भरोसा मत कीजिए। DevTools खोलिए, Network टैब पर नज़र रखिए, और कोई फ़ोटो कंप्रेस कीजिए। एक भी रिक्वेस्ट में न कोई तस्वीर जाती है, न थंबनेल, न फ़ाइल का नाम, न आपकी चुनी फ़ाइल का एक बाइट। या फिर इंटरनेट काट दीजिए और तब भी कोई तस्वीर कंप्रेस करके देखिए।
प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
आपकी तस्वीरों के जाने के लिए कोई जगह ही नहीं है। यह पेज जिन-जिन पतों से संपर्क कर सकता है, Content-Security-Policy उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ ऐसा कोई एंडपॉइंट है ही नहीं जहाँ आपकी फ़ाइलें जमा हो सकें, और होता भी तो कोड में ऐसा कुछ नहीं है जो उन्हें भेजता।
यहाँ कुछ भी कहीं से कुछ नहीं मँगाता।src/ में कहीं भी न fetch है, न XMLHttpRequest, न sendBeacon। कंप्रेशन का काम canvas.toBlob करता है, यानी वही एनकोडर जो आपके ब्राउज़र में पहले से लगा हुआ है।
आँकड़े नापे जाते हैं, कहीं भेजे नहीं जाते। साइज़, क्वालिटी का आँकड़ा और SSIM की तुलना, ये सब इसी पेज पर निकाले जाते हैं और आपको दिखा दिए जाते हैं। इस रिपॉज़िटरी में ऐसा कोई अपना एनालिटिक्स इवेंट नहीं है जो फ़ाइल का नाम, साइज़, गिनती या नतीजा साथ ले जाता हो।
Google क्या लोड करता है, और उसे क्या नहीं दिया जाता। विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपकी तस्वीरों के बारे में कुछ नहीं सौंपा जाता। फ़ाइल पढ़ने, कंप्रेस करने या नापने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में मौजूद है।
यह ऑफ़लाइन भी चलता है। नेटवर्क काट दीजिए, टूल जस का तस काम करता रहेगा, क्योंकि इसमें नेटवर्क वाला कोई कदम कभी था ही नहीं। सबसे आसान सबूत यही है।
खुद जाँच लीजिए। ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा dist ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं:
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए config/site.toml, क्वालिटी कितनी खर्च करनी है यह तय करने वाली खोज के लिए src/compress.js, और “दिखने में कितना मेल खाता है” वाले आँकड़े के पीछे की तुलना के लिए src/measure.js।
अगर आपके दफ़्तर का सुरक्षा सॉफ़्टवेयर अपलोड की चेतावनी दे। वह उस पल पर नज़र रखता है जब ब्राउज़र में फ़ाइल चुनी जाती है, और यह नहीं जान सकता कि पन्ना उसे भेजने वाला है या नहीं — इसलिए चुनने पर ही चेतावनी देता है। यहाँ से कुछ नहीं भेजा जाता: ब्राउज़र के डेवलपर टूल खोलिए, Network पर जाइए, और एक फ़ाइल चुनिए। उसे ले जाने वाला कोई अनुरोध नहीं है, और पन्ने की अपनी स्थानीय झलक के अलावा कोई अनुरोध ही नहीं। यही जाँच आपकी IT टीम आधे मिनट में कर सकती है।
1 तस्वीरें चुनिए
2 बताइए कि यह कितनी बड़ी हो सकती है
यही वह हिस्सा है जिसे दूसरे कंप्रेसर उलटा कर देते हैं। वे आपको क्वालिटी का स्लाइडर थमा देते हैं, और अंदाज़ा आप लगाइए कि कौन-सी सेटिंग आपको दी गई सीमा के नीचे उतरेगी। इसके बजाय सीमा आप बता दीजिए। टूल उस सबसे ऊँची क्वालिटी को ढूँढ़ता है जो उसमें समा जाए, और आपके माँगे साइज़ से आधी फ़ाइल थमाने के बजाय बजट में जो बचा है वह भी खर्च कर देता है।
ज़रूरत पड़े तो तस्वीर छोटी कर सकता है यह सिर्फ़ तब काम आता है जब अकेली क्वालिटी को उस हद से नीचे गिरना पड़ता जहाँ से कंप्रेशन दिखने लगता है। उससे नीचे कम मगर अच्छे पिक्सल ज़्यादा मगर बिगड़े हुए पिक्सलों से बेहतर दिखते हैं। ठीक वही माप बनाए रखनी हो तो इसे बंद कर दीजिए, और तंग तय साइज़ की कीमत क्वालिटी से चुकाइए।
3 कंप्रेस कीजिए
कंप्रेस हो चुकीं
{amount} बाइट{amount} KB{amount} MB{count} तस्वीर, कुल {size}{count} तस्वीरें, कुल {size}पहले से ही तय साइज़ से नीचे — यह जैसी है वैसी ही छोड़ दी जाएगी।{name} को सूची से हटाइए{name}: यह ऐसी तस्वीर नहीं जिसे यह टूल पढ़ सके।{name}: यह ब्राउज़र इसे डिकोड नहीं कर सका।कोई साइज़ बताइए, जिस तक पहुँचना है।हर तस्वीर को {size} से नीचे लाया जाएगा।यह तस्वीर {size} से ऊपर है, इसलिए तब तक कंप्रेस होगी जब तक ऐसा न रह जाए।यह तस्वीर पहले से ही {size} से नीचे है, इसलिए बिना छुए आगे भेज दी जाएगी।{total} में से {over} तस्वीर {size} से ऊपर है{total} में से {over} तस्वीरें {size} से ऊपर हैंदूसरी बिना छुए आगे भेज दी जाएगीबाकी {count} बिना छुए आगे भेज दी जाएँगी{over}।{over}, और {rest}।{format} {sizing}फ़ॉर्मैट वही रहता है, बशर्ते तय साइज़ इतना तंग न हो कि उसे रखना असली गुणवत्ता की कीमत माँगे — तब WebP लिया जाता है, और पंक्ति यह बता भी देती है।हर तस्वीर वही फ़ॉर्मैट रखती है जिसमें वह आई थी।सब कुछ JPEG में लिखा जाता है। पारदर्शिता सफ़ेद हो जाती है, क्योंकि JPEG में अल्फ़ा चैनल नहीं होता।सब कुछ WebP में लिखा जाता है: उतनी ही गुणवत्ता पर JPEG से छोटा, और पारदर्शिता भी बची रहती है।सब कुछ PNG में लिखा जाता है। PNG में गुणवत्ता का कोई घुंडी नहीं होती, इसलिए तय साइज़ तक पहुँचने का एक ही रास्ता है — तस्वीर को छोटा करना।अगर अकेली गुणवत्ता से तय साइज़ तक नहीं पहुँचा जा सकता, तो तस्वीर को कुचलने के बजाय छोटा किया जाता है।तस्वीर अपनी पूरी नाप बनाए रखती है, इसलिए तंग तय साइज़ की कीमत अकेली गुणवत्ता से चुकानी पड़ती है।WebP — यह ब्राउज़र इसका समर्थन नहीं करतापहला पूरा होने से पहले ही रोक दिया गया।{total} में से {done} के बाद रोक दिया गया। जो पूरा हुआ वह नीचे है।{total} में से {at}: {name} — {step}पढ़ा जा रहा हैडिकोड हो रहा हैदेखा जा रहा है कि पूरी गुणवत्ता पर कितना पड़ता हैजो सबसे बड़ी नाप समा जाए, वह खोजी जा रही हैगुणवत्ता की घुंडी टटोली जा रही हैगुणवत्ता की न्यूनतम सीमा से नीचे जाया जा रहा है, क्योंकि छोटा करना बंद हैरिज़ॉल्यूशन देकर गुणवत्ता ली जा रही हैबजट में जो बचा है वह खर्च किया जा रहा हैइसके बजाय {format} आज़माया जा रहा हैबहुत सारी कोशिशों के बाद हार मान ली।इस ब्राउज़र ने {format} में लिखने से मना कर दिया।यह ब्राउज़र तस्वीर को डिकोड नहीं कर सका।{before} से घटकर {after} — {change}, और हर तस्वीर तय साइज़ से नीचे है।{before} से घटकर {after}। {count} तस्वीर तय साइज़ तक नहीं पहुँच सकी — नीचे की पंक्ति देखिए।{before} से घटकर {after}। {count} तस्वीरें तय साइज़ तक नहीं पहुँच सकीं — नीचे की पंक्तियाँ देखिए।{before} → {after} · {change}{size} — पहले से ही तय साइज़ से नीचे थी, इसलिए कुछ छुआ ही नहीं गया।असली के मुकाबले नापा गया: {match} (SSIM {ssim}, PSNR {psnr})।ऊपर की सेटिंग्स में यह तस्वीर इससे छोटी नहीं हो सकती थी, और अब भी तय साइज़ से ऊपर है। छोटा करने की छूट दीजिए, या बड़ा साइज़ माँगिए।डाउनलोडमिलाइएछिपाइए{percent}% छोटी{percent}% बड़ीलगभग उतनी ही बड़ी{percent}% — फ़र्क पहचाना ही नहीं जा सकता{percent}% — कोई दिखने वाला फ़र्क नहीं{percent}% — बहुत करीब{percent}% — थोड़ी नरम पड़ी{percent}% — कंप्रेशन दिख रहा है{db} dBएक जैसीजो साइज़ इसके पास पहले से था, उस तक पहुँचने के लिए कंप्रेस करना गुणवत्ता की कीमत माँगता, इसलिए इसे बाइट दर बाइट आगे भेज दिया गया — मेटाडेटा समेत।{format}, {size}, {encodes}।{format}, गुणवत्ता {quality}, {size}, {encodes}।{format} में लिखी गई{format} में लिखी गई, जिसने इस साइज़ पर तस्वीर को असली फ़ॉर्मैट से बेहतर सँभाला{from} से घटाकर {to} की गईपूरे आकार में, {size}{count} बार एनकोड करने पर मिली{count} बार एनकोड करने पर मिलीअसलीकंप्रेस की हुई{label}: {name}{size} · {dimensions}दोनों एक ही चौड़ाई में दिखाई गई हैं, और फ़र्क असल में इसी तरह आँका जाता है। नज़दीक से देखने के लिए दोनों फ़ाइलें पूरे आकार में खोलिए।आपकी तस्वीरें कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई तस्वीर मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई तस्वीर मिली, न उसका एक बाइट।
क्या इससे काम बन गया?
क्या गड़बड़ हुई?
शुक्रिया — इससे मदद मिलती है।
सिर्फ़ आपका जवाब भेजा जाता है, वह भी तभी जब आप बटन दबाते हैं। आपकी फ़ाइल, उसका नाम या उससे जुड़ी कोई बात कभी नहीं।
# इमेज कंप्रेसर — तय साइज़ तक कंप्रेस कीजिए
साइज़ आप बताइए। बाकी हिसाब यह लगा लेगा।
> JPEG, PNG या WebP को ठीक तय साइज़ तक कंप्रेस कीजिए - 100 KB, 2 MB, कुछ भी। पूरा काम आपके ब्राउज़र में होता है। न कुछ अपलोड, न कोई खाता, और ऑफ़लाइन भी चलता है।
यह पेज एक इंटरैक्टिव टूल है जो पूरी तरह आपके ब्राउज़र में चलता है, https://abox.tools/hi/compress-image/ पर — आप इसे जो भी देते हैं, वह कहीं अपलोड नहीं होता। आगे वह सब कुछ है जो यह पेज इस टूल के बारे में शब्दों में कहता है; इसे इस्तेमाल करने के लिए यह पता खोलें।
## यह टूल तस्वीरें **कभी अपलोड नहीं करता**। यहाँ कोई सर्वर है ही नहीं।
कंप्रेशन आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर, उन्हीं एनकोडरों से होता है जो उसमें पहले से मौजूद हैं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं। न कुछ मँगाने का रास्ता, न कुछ भेजने का। और मान लीजिए कोई रास्ता होता भी, तो इस पेज के दूसरी तरफ़ ऐसा कोई सर्वर ही नहीं है जिसे तस्वीर भेजी जा सके।
- ✗ कोई अपलोड नहीं
- ✗ कोई खाता नहीं
- ✗ साइज़ की कोई सीमा नहीं
- ✓ ऑफ़लाइन चलता है
- ✓ ओपन सोर्स
## किसी इमेज को तय साइज़ तक कैसे कंप्रेस करें
1. **अपनी तस्वीरें चुनिए।** उन्हें पिकर पर छोड़ दीजिए, या हाथ से चुन लीजिए। ब्राउज़र उन्हें सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
2. **जो साइज़ आपसे माँगा गया है, वह टाइप कीजिए।** जो अपलोड फ़ॉर्म आपकी फ़ोटो बार-बार लौटा रहा है उसके लिए 100 KB, आवेदन पोर्टल के लिए 500 KB, जल्दी खुलने वाले पेज के लिए 2 MB। चार सबसे आम साइज़ बटन की शक्ल में मौजूद हैं।
3. **“तय साइज़ तक कंप्रेस कीजिए” दबाइए।** हर तस्वीर कई बार एनकोड होती है, और टूल उस सबसे ऊँची क्वालिटी तक पहुँचता जाता है जो तय साइज़ में समा जाए। जो पहले से तय साइज़ से नीचे है, उसे बिलकुल वैसा का वैसा छोड़ दिया जाता है।
4. **देखिए कीमत क्या पड़ी, फिर डाउनलोड कीजिए।** हर नतीजा बता देता है कि वह किस फ़ॉर्मैट में लिखा गया, किस क्वालिटी पर, माप बदली या नहीं, और नापने पर वह असली तस्वीर से कितना मेल खाता है। “तुलना” दोनों तस्वीरें आमने-सामने रख देता है।
## विस्तार से
[किसी तस्वीर को ठीक तय फ़ाइल साइज़ तक कैसे कंप्रेस करें](https://abox.tools/hi/guides/compress-an-image-to-a-target-size/): अपलोड फ़ॉर्म 500 KB माँग रहा है और आपकी फ़ोटो 4 MB की है। साइज़ की सीमा असल में क्या कीमत लेती है, पहले कौन-सी सेटिंग हिलानी है, और PNG वैसे क्यों नहीं सिकुड़ता जैसे JPEG सिकुड़ता है।
## बॉक्स में और भी टूल
- [इमेज रिसाइज़र](https://abox.tools/hi/resize-image/): साइज़ बताइए। डिब्बा खींचिए। फ़ॉर्मैट चुनिए।
- [HEIC से JPG](https://abox.tools/hi/heic-to-jpg/): iPhone जो फ़ोटो बनाता है, उस फ़ॉर्मैट में जिसे सब खोल लेते हैं।
- [ID फ़ोटो मेकर](https://abox.tools/hi/id-photo/): देश चुनिए। उसी देश का नियम यह हूबहू लागू कर देता है।
- [इमेज स्टैकर](https://abox.tools/hi/stack-images/): बीस फ़्रेम एक में, न बीस अपलोड, न कोई RAW कन्वर्टर।
## सवाल
### क्या मेरी तस्वीर कहीं अपलोड होती है?
नहीं। फ़ाइल को डिकोड करने, कंप्रेस करने और नापने का काम आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है, उन्हीं 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 व्यूअर और रिमूवर](https://abox.tools/hi/exif-editor/) इस्तेमाल कीजिए। वह कंटेनर दोबारा लिखता है, कुछ भी दोबारा कंप्रेस किए बिना।
### क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?
यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, न वॉटरमार्क। फ़ाइलों की गिनती या साइज़ पर भी कोई सीमा नहीं है, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। काम आपके अपने डिवाइस पर होता है। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी तस्वीरों के बारे में कुछ नहीं दिया जाता।
### क्या यह ऑफ़लाइन चलता है?
हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, यह चलता रहेगा। कुछ अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है। जो टूल आपकी तस्वीरें कंप्रेस करने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।
## प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
- **आपकी तस्वीरों के जाने के लिए कोई जगह ही नहीं है।** यह पेज जिन-जिन पतों से संपर्क कर सकता है, Content-Security-Policy उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ ऐसा कोई एंडपॉइंट है ही नहीं जहाँ आपकी फ़ाइलें जमा हो सकें, और होता भी तो कोड में ऐसा कुछ नहीं है जो उन्हें भेजता।
- **यहाँ कुछ भी कहीं से कुछ नहीं मँगाता।** `src/` में कहीं भी न `fetch` है, न `XMLHttpRequest`, न `sendBeacon`। कंप्रेशन का काम `canvas.toBlob` करता है, यानी वही एनकोडर जो आपके ब्राउज़र में पहले से लगा हुआ है।
- **आँकड़े नापे जाते हैं, कहीं भेजे नहीं जाते।** साइज़, क्वालिटी का आँकड़ा और SSIM की तुलना, ये सब इसी पेज पर निकाले जाते हैं और आपको दिखा दिए जाते हैं। इस रिपॉज़िटरी में ऐसा कोई अपना एनालिटिक्स इवेंट नहीं है जो फ़ाइल का नाम, साइज़, गिनती या नतीजा साथ ले जाता हो।
- **Google क्या लोड करता है, और उसे क्या नहीं दिया जाता।** विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपकी तस्वीरों के बारे में कुछ नहीं सौंपा जाता। फ़ाइल पढ़ने, कंप्रेस करने या नापने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में मौजूद है।
- **यह ऑफ़लाइन भी चलता है।** नेटवर्क काट दीजिए, टूल जस का तस काम करता रहेगा, क्योंकि इसमें नेटवर्क वाला कोई कदम कभी था ही नहीं। सबसे आसान सबूत यही है।
**खुद जाँच लीजिए।** ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा `dist` ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं: https://github.com/A-Box-of-Tools/website
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए `config/site.toml`, क्वालिटी कितनी खर्च करनी है यह तय करने वाली खोज के लिए `src/compress.js`, और “दिखने में कितना मेल खाता है” वाले आँकड़े के पीछे की तुलना के लिए `src/measure.js`।
किसी इमेज को तय साइज़ तक कैसे कंप्रेस करें
अपनी तस्वीरें चुनिए। उन्हें पिकर पर छोड़ दीजिए, या हाथ से चुन लीजिए। ब्राउज़र उन्हें सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
जो साइज़ आपसे माँगा गया है, वह टाइप कीजिए। जो अपलोड फ़ॉर्म आपकी फ़ोटो बार-बार लौटा रहा है उसके लिए 100 KB, आवेदन पोर्टल के लिए 500 KB, जल्दी खुलने वाले पेज के लिए 2 MB। चार सबसे आम साइज़ बटन की शक्ल में मौजूद हैं।
“तय साइज़ तक कंप्रेस कीजिए” दबाइए। हर तस्वीर कई बार एनकोड होती है, और टूल उस सबसे ऊँची क्वालिटी तक पहुँचता जाता है जो तय साइज़ में समा जाए। जो पहले से तय साइज़ से नीचे है, उसे बिलकुल वैसा का वैसा छोड़ दिया जाता है।
देखिए कीमत क्या पड़ी, फिर डाउनलोड कीजिए। हर नतीजा बता देता है कि वह किस फ़ॉर्मैट में लिखा गया, किस क्वालिटी पर, माप बदली या नहीं, और नापने पर वह असली तस्वीर से कितना मेल खाता है। “तुलना” दोनों तस्वीरें आमने-सामने रख देता है।
विस्तार से
किसी तस्वीर को ठीक तय फ़ाइल साइज़ तक कैसे कंप्रेस करेंअपलोड फ़ॉर्म 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 व्यूअर और रिमूवर इस्तेमाल कीजिए। वह कंटेनर दोबारा लिखता है, कुछ भी दोबारा कंप्रेस किए बिना।
क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?
यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, न वॉटरमार्क। फ़ाइलों की गिनती या साइज़ पर भी कोई सीमा नहीं है, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। काम आपके अपने डिवाइस पर होता है। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी तस्वीरों के बारे में कुछ नहीं दिया जाता।
क्या यह ऑफ़लाइन चलता है?
हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, यह चलता रहेगा। कुछ अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है। जो टूल आपकी तस्वीरें कंप्रेस करने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।