यह पेज हिन्दी में दिखाया जा रहा है, क्योंकि आपका ब्राउज़र यही भाषा माँगता है।
इस पेज का कोड चालू नहीं हुआ।
index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए कोई फ़ोटो चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:
ऊपर फ़ाइल चुनते ही यह खुल जाएगा।तैयार — इंटरनेट काट दीजिए, यह फिर भी चलता रहेगा।इस ब्राउज़र में उपलब्ध नहीं (बाकी सब फिर भी चलता है)।ऑफ़लाइन कैश के लिए https:// या localhost चाहिए।यहाँ कैश नहीं हो सकता, पर अपलोड फिर भी कुछ नहीं होता।आपकी फ़ाइलें कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।कुछ गड़बड़ हो गई: {detail}। दोबारा शुरू करने के लिए पेज फिर से लोड कीजिए।{count} फ़ाइल पढ़ी जा रही है…{count} फ़ाइलें पढ़ी जा रही हैं…कोई उदाहरण आज़माइएउदाहरण बनाया जा रहा है…यह ब्राउज़र उदाहरण नहीं बना सका। इसके बजाय कोई फ़ाइल चुनिए।
HEIC से JPG — iPhone की फ़ोटो बदलिए
iPhone जो फ़ोटो बनाता है, उस फ़ॉर्मैट में जिसे सब खोल लेते हैं।
● यह टूल फ़ोटो कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।
डिकोडिंग आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर होती है। HEIC वह अकेला तस्वीर फ़ॉर्मैट है जिसे ब्राउज़र खुद से नहीं खोलेगा, इसलिए यह पेज डिकोडर अपने साथ लेकर चलता है। करीब 1.4 MB, इसी साइट से आता हुआ, और पहली विज़िट के बाद कैश में। हर दूसरा HEIC कन्वर्टर आपसे अपलोड इसीलिए माँगता है, क्योंकि वे कोडेक सर्वर पर रखते हैं और आपकी फ़ोटो को वहाँ तक जाना ही पड़ता है। यह वाला कोडेक इसके बजाय यहीं रख देता है। इस पेज पर कोई नेटवर्क सुविधा है ही नहीं, और इसके दूसरी तरफ़ कोई सर्वर भी नहीं जिसे फ़ोटो भेजी जा सके।
✗ कोई अपलोड नहीं
✗ कोई खाता नहीं
✗ साइज़ की कोई सीमा नहीं
✓ ऑफ़लाइन चलता है
✓ ओपन सोर्स
लाइव जाँच:जाँच जारी…
ऑफ़लाइन:जाँच जारी…
हमारी बात पर भरोसा मत कीजिए। DevTools खोलिए, Network टैब पर नज़र रखिए, और कोई फ़ोटो बदलिए। आपको इसी पेज की अपनी फ़ाइलें लोड होती दिखेंगी, उनमें डिकोडर भी, और एक भी रिक्वेस्ट ऐसी नहीं जो कोई फ़ोटो, थंबनेल, फ़ाइल का नाम, या आपकी चुनी फ़ाइल का एक बाइट ढो रही हो। या फिर पेज एक बार लोड कीजिए, इंटरनेट काट दीजिए, और तब भी फ़ोटो का पूरा फ़ोल्डर बदलकर देखिए।
प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
आपकी फ़ोटो के जाने के लिए कोई जगह ही नहीं है। यह पेज जिन-जिन पतों से संपर्क कर सकता है, Content-Security-Policy उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ ऐसा कोई एंडपॉइंट है ही नहीं जहाँ आपकी फ़ाइलें जमा हो सकें, और होता भी तो कोड में ऐसा कुछ नहीं है जो उन्हें भेजता।
डिकोडर यहीं से आया, और यहीं रहता है। HEIC दरअसल एक डिब्बों वाले फ़ॉर्मैट में बैठी HEVC है, और Safari के सिवा कोई ब्राउज़र उसे डिकोड नहीं करेगा। इसलिए यह पेज WebAssembly में संकलित libheif साथ लेकर चलता है, करीब 1.4 MB, जो इसी रिपॉज़िटरी में मौजूद है, इसी ऑरिजिन से आता है, और यहाँ की हर दूसरी फ़ाइल की तरह सर्विस वर्कर के कैश में बैठ जाता है। उसे किसी CDN से नहीं लाया जाता, क्योंकि इससे हर विज़िट के रास्ते में एक तीसरा पक्ष आ बैठता और टूल ऑफ़लाइन चलना बंद कर देता। बाइनरी स्क्रिप्ट के बगल में नहीं, उसके भीतर है, ठीक इसीलिए कि उसे चालू करने के लिए कुछ लाने की ज़रूरत ही न पड़े।
यहाँ कुछ भी कहीं से कुछ नहीं मँगाता। इस टूल के लिए लिखी किसी भी फ़ाइल में न fetch है, न XMLHttpRequest, न sendBeacon। हर Emscripten बिल्ड की तरह इस साथ लाए इंजन में भी वे लोडर रास्ते मौजूद हैं जो किसी URL से .wasm ले आते हैं। उन्हें लिया नहीं जाता, क्योंकि बाइनरी पहले से हाथ में है। और लिया भी जाता, तो connect-src में Google के माप वाले एंडपॉइंट के सिवा किसी का नाम है ही नहीं, इसलिए ब्राउज़र उसे मना कर देता। सबूत पॉलिसी है, वादा नहीं।
मेटाडेटा यहीं पढ़ा जाता है और आपको बता दिया जाता है। पेज पर बनी सूची बताती है कि हर फ़ोटो क्या-क्या ढो रही है, यानी तारीख, कैमरा, और यह कि उसमें GPS निर्देशांक हैं या नहीं। JPEG किसी को सौंपने से पहले शायद आप यही जानना चाहें। उसे इसी ब्राउज़र में src/boxes.js फ़ाइल पढ़ती है, इसी पेज पर दिखाती है, और फिर पूरी तरह आपकी मर्ज़ी से या तो आपकी JPEG में लिख देती है या छोड़ देती है। इस रिपॉज़िटरी में ऐसा कोई अपना एनालिटिक्स इवेंट नहीं है जो फ़ाइल का नाम, तारीख, निर्देशांक या गिनती साथ ले जाता हो।
Google क्या लोड करता है, और उसे क्या नहीं दिया जाता। विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपकी फ़ोटो के बारे में कुछ नहीं सौंपा जाता। फ़ाइल पढ़ने, डिकोड करने या लिखने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में मौजूद है।
यह ऑफ़लाइन भी चलता है। पेज एक बार लोड कीजिए और नेटवर्क काट दीजिए। टूल जस का तस रहेगा, क्योंकि डिकोडर उसी के साथ कैश हो चुका है। सबसे आसान सबूत यही है, और इस साइट पर कहीं और से यहाँ ज़्यादा मज़बूत भी। जो कन्वर्टर आपकी फ़ोटो डिकोड होने के लिए कहीं भेजता, वह ऐसा कर ही नहीं पाता।
खुद जाँच लीजिए। ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा dist ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं:
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए config/site.toml, डिकोडर कैसे लोड होता है और उसे करने की क्या इजाज़त है, यह देखने के लिए src/heif.js, फ़ोटो का मेटाडेटा ढूँढ़ने वाली कंटेनर-पार्सिंग के लिए src/boxes.js, और JPEG में जाते वक्त उस मेटाडेटा का क्या होता है, इसके लिए src/exif.js। खुद इंजन vendor/libheif.js है, बिना किसी बदलाव के, और उसके बगल में उसका लाइसेंस।
अगर आपके दफ़्तर का सुरक्षा सॉफ़्टवेयर अपलोड की चेतावनी दे। वह उस पल पर नज़र रखता है जब ब्राउज़र में फ़ाइल चुनी जाती है, और यह नहीं जान सकता कि पन्ना उसे भेजने वाला है या नहीं — इसलिए चुनने पर ही चेतावनी देता है। यहाँ से कुछ नहीं भेजा जाता: ब्राउज़र के डेवलपर टूल खोलिए, Network पर जाइए, और एक फ़ाइल चुनिए। उसे ले जाने वाला कोई अनुरोध नहीं है, और पन्ने की अपनी स्थानीय झलक के अलावा कोई अनुरोध ही नहीं। यही जाँच आपकी IT टीम आधे मिनट में कर सकती है।
1 अपनी HEIC फ़ोटो चुनिए
सीधे फ़ोन से, किसी बैकअप में से, या मेमोरी कार्ड से कॉपी करके। फ़ाइल यहीं, इसी मशीन पर पढ़ी जाती है, और तस्वीर भी यहीं डिकोड होती है। इस पेज में अपलोड वाला कोई कदम है ही नहीं, और इसके पीछे कोई सर्वर भी नहीं।
2 बताइए कि आपको वापस क्या चाहिए
तारीख, कैमरा और सेटिंग रहने दीजिए हूबहू वैसे ही उतार दिए जाते हैं जैसे फ़ोन ने उन्हें लिखा था, इसलिए बदली हुई फ़ोटो अब भी उसी दिन के हिसाब से क्रम में लगती है जिस दिन वह खींची गई थी, न कि जिस दिन बदली गई। जिन फ़ोटो में GPS निर्देशांक हैं, उनके लिए इसमें वे भी शामिल हैं, और ऊपर की सूची बता देती है कि आपकी किन फ़ोटो में वे हैं। इसे बंद कर दीजिए, और JPEG में तस्वीर के सिवा कुछ नहीं आता।
दोनों ही हालात में यहाँ से कुछ भी किसी को सुनाया नहीं जाता: यह चुनाव इस बारे में है कि आपको वापस मिलने वाली फ़ाइल में क्या जाएगा, इस बारे में नहीं कि यह पेज उसका क्या करता है। अगर आप टैगों को ब्योरे से देखना चाहते हैं, या उन्हें उन फ़ोटो से हटाना चाहते हैं जो पहले से JPEG हैं, तो उस काम के लिए EXIF व्यूअर और रिमूवर है।
3 बदलिए
बदली हुईं
{name}: {why}यह AVIF है, HEIC नहीं। आजकल का हर ब्राउज़र इसे पहले ही खोल लेता है, इसलिए यहाँ इसके साथ कुछ करने को है ही नहीं।यह पहले से JPEG है।यह PNG है, जो पहले से ही हर जगह खुल जाता है।यह HEIC नहीं है। {name} जो भी हो, उसके पहले बाइट HEIF कंटेनर नहीं हैं, और नाम भी कोई सबूत नहीं है।{n} फ़ोटो, कुल {size}{n} फ़ोटो, कुल {size}HEIC ({brand}) · {size}{name} को सूची से हटाइएइस फ़ाइल में फ़ोटो का कोई विवरण नहींGPS निर्देशांकफ़ोटो का विवरण है, पर पहचान बताने वाला कुछ नहीं{a} · {b}{a} {b}JPEG वही है जो फ़ोन ने लिखा होता, अगर उससे कहा गया होता। इसे हर प्रोग्राम, हर वेबसाइट और हर प्रिंटर खोल लेता है।PNG कुछ भी नहीं फेंकता, और इसमें सहेजी गई फ़ोटो आम तौर पर JPEG से पाँच से दस गुना बड़ी होती है। स्क्रीनशॉट या आरेख के लिए यह सही चुनाव है और छुट्टियों की तस्वीरों के लिए गलत।WebP उसी गुणवत्ता पर JPEG से छोटा होता है और 2020 के बाद आया हर ब्राउज़र इसे खोल लेता है — पर हर डेस्कटॉप प्रोग्राम नहीं, और किसी को भेजने से पहले यही जाँचने की बात है।तारीख, कैमरा और स्थान छोड़ दिए जाते हैं।तारीख, कैमरा और स्थान साथ चले जाते हैं, घुमाव वाले टैग को सुधारकर, क्योंकि तस्वीर खुद पहले ही सीधी कर दी गई है।फ़ोटो का विवरण साथ नहीं आ सकता: उसे रखने की मानक जगह सिर्फ़ JPEG में है जिसे कैनवस लिख सकता है, इसलिए {format} फ़ाइल सिर्फ़ तस्वीर लेकर निकलती है और कुछ नहीं।फ़ाइलनया प्रारूपWebP — इस ब्राउज़र में समर्थित नहींडिकोडर का इंतज़ारपढ़ा जा रहा हैडिकोड हो रहा है{total} में से {index} तस्वीर लिखी जा रही है{format} लिखा जा रहा है{total} में से {index}: {name} — {note}डिकोडर लोड नहीं हुआ। वह इसी साइट से आता है, इसलिए या तो अनुरोध रोका गया है या पहली बार का लोड बिगड़ा है — पेज दोबारा लोड करने से आम तौर पर ठीक हो जाता है।डिकोडर लोड तो हुआ पर चला नहीं।डिकोडर इस फ़ाइल को पढ़ नहीं सका ({detail})।इस फ़ाइल में ऐसी कोई तस्वीर नहीं है जिसे डिकोडर ढूँढ़ सका हो।इस फ़ाइल की तस्वीर का ऐसा कोई आकार नहीं है जिसे डिकोडर इस्तेमाल कर पाता।डिकोडर ने फ़ाइल पढ़ ली पर उसे बना नहीं सका।इस ब्राउज़र ने {format} लिखने से मना कर दिया।{n} HEIC फ़ाइल{n} HEIC फ़ाइलें{n} {format} तस्वीर{n} {format} तस्वीरें{files} → {pictures}। {before} → {after}, {change}।बदली हुई तस्वीर: {name}{before} → {after} · {change}डाउनलोड{size} पर {format}गुणवत्ता {n}फ़ाइल में {total} में से {n} तस्वीरफ़ोटो का विवरण रखा गयाफ़ोटो का विवरण रखा गया, GPS निर्देशांक भीफ़ोटो का कोई विवरण नहीं लिखा गयाफ़ोटो का विवरण JPEG खंड के लिए बहुत बड़ा था और छोड़ दिया गया{list}।करीब उतना ही बड़ा{n}% छोटा{n}% बड़ा{n} बाइट{n} KB{n} MBHEIC डिकोडर पहली बार इस्तेमाल पर इसी साइट से लोड होता है: करीब 1.4 MB, एक बार, फिर कैश में।HEIC डिकोडर इसी साइट से लोड हो रहा है: करीब 1.4 MB, एक ही बार।डिकोडर तैयार — इसी साइट से आया और कैश में है, इसलिए अगली बार भी यहीं रहेगा, नेटवर्क बंद होने पर भी।डिकोडर चालू नहीं हो सका: {why}{total} में से {done} के बाद रोक दिया गया। जो पूरा हुआ वह नीचे है।पहला पूरा होने से पहले ही रोक दिया गया।तैयार — डिकोडर भी कैश में है, इसलिए नेटवर्क बंद होने पर भी यह चलता है।आपकी फ़ोटो कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं - डिकोडर भी उन्हीं में। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ोटो मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ोटो मिली, न उसका एक बाइट।
क्या इससे काम बन गया?
क्या गड़बड़ हुई?
शुक्रिया — इससे मदद मिलती है।
सिर्फ़ आपका जवाब भेजा जाता है, वह भी तभी जब आप बटन दबाते हैं। आपकी फ़ाइल, उसका नाम या उससे जुड़ी कोई बात कभी नहीं।
# HEIC से JPG — iPhone की फ़ोटो बदलिए
iPhone जो फ़ोटो बनाता है, उस फ़ॉर्मैट में जिसे सब खोल लेते हैं।
> iPhone की HEIC फ़ोटो को अपने ब्राउज़र में ही JPG बना लीजिए। डिकोडर आपकी अपनी मशीन पर चलता है। कुछ अपलोड नहीं होता, कोई खाता नहीं, ऑफ़लाइन भी चलता है, और तारीख तथा कैमरे का ब्योरा साथ आ सकता है।
यह पेज एक इंटरैक्टिव टूल है जो पूरी तरह आपके ब्राउज़र में चलता है, https://abox.tools/hi/heic-to-jpg/ पर — आप इसे जो भी देते हैं, वह कहीं अपलोड नहीं होता। आगे वह सब कुछ है जो यह पेज इस टूल के बारे में शब्दों में कहता है; इसे इस्तेमाल करने के लिए यह पता खोलें।
## यह टूल फ़ोटो **कभी अपलोड नहीं करता**। यहाँ कोई सर्वर है ही नहीं।
डिकोडिंग आपके अपने ब्राउज़र में, आपके अपने हार्डवेयर पर होती है। HEIC वह अकेला तस्वीर फ़ॉर्मैट है जिसे ब्राउज़र खुद से नहीं खोलेगा, इसलिए यह पेज डिकोडर अपने साथ लेकर चलता है। करीब 1.4 MB, इसी साइट से आता हुआ, और पहली विज़िट के बाद कैश में। हर दूसरा HEIC कन्वर्टर आपसे अपलोड इसीलिए माँगता है, क्योंकि वे कोडेक सर्वर पर रखते हैं और आपकी फ़ोटो को वहाँ तक जाना ही पड़ता है। यह वाला कोडेक इसके बजाय यहीं रख देता है। इस पेज पर कोई नेटवर्क सुविधा है ही नहीं, और इसके दूसरी तरफ़ कोई सर्वर भी नहीं जिसे फ़ोटो भेजी जा सके।
- ✗ कोई अपलोड नहीं
- ✗ कोई खाता नहीं
- ✗ साइज़ की कोई सीमा नहीं
- ✓ ऑफ़लाइन चलता है
- ✓ ओपन सोर्स
## HEIC फ़ोटो को JPG में कैसे बदलें
1. **अपनी HEIC फ़ोटो चुनिए।** उन्हें पिकर पर छोड़ दीजिए या हाथ से चुन लीजिए, सीधे फ़ोन के बैकअप से या डेस्कटॉप के किसी फ़ोल्डर से। ब्राउज़र उन्हें आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता। सूची बताती है कि हर फ़ाइल क्या है और उसके भीतर क्या है।
2. **देखिए कि फ़ोटो क्या-क्या ढो रही हैं।** हर पंक्ति उस तारीख का नाम लेती है जब वह खींची गई, कैमरे का नाम लेती है, और हरे रंग में यह भी बताती है कि फ़ाइल में GPS निर्देशांक हैं या नहीं। हरा रंग इसलिए, क्योंकि ध्यान देने लायक हिस्सा यही है। यह सब तस्वीर डिकोड किए बिना कंटेनर से पढ़ा जाता है, इसलिए इसकी कोई कीमत नहीं लगती और यह तुरंत दिख जाता है।
3. **फ़ॉर्मैट चुनिए, और ब्योरे के बारे में फ़ैसला कीजिए।** कोई खास वजह न हो तो JPEG ही चुनिए, क्योंकि यही वह फ़ॉर्मैट है जो हर जगह खुलता है, और बदलने का पूरा मकसद भी यही है। क्वालिटी का स्लाइडर 92 पर है, यानी उस सेटिंग पर जहाँ फ़ोटोग्राफ़ को असली से अलग बता पाना मुश्किल होता है। चेकबॉक्स तय करता है कि तारीख, कैमरा और जगह साथ आएँ या नहीं।
4. **“बदलिए” दबाइए, और डाउनलोड कीजिए।** डिकोडर पहली बार बदलने पर आता है, करीब 1.4 MB और बस एक ही बार। उसके बाद हर फ़ोटो आपकी अपनी मशीन पर डिकोड होती है और लिखी जाती है। एक फ़ाइल पर डाउनलोड का बटन मिलता है, और कई पर एक ZIP भी।
## विस्तार से
[आपके फ़ोन ने जो फ़ोटो सहेजी, और वह फ़ॉर्मैट जिसे कुछ भी नहीं खोलता](https://abox.tools/hi/guides/convert-heic-to-jpg/): iPhone फ़ोटो को HEIC में सहेजता है, और आधा इंटरनेट उसे खोल ही नहीं पाता। यह फ़ॉर्मैट क्या है, सिर्फ़ Safari ही इसे क्यों डिकोड करता है, बदलने में तस्वीर की क्या कीमत लगती है, और यह सब बिना फ़ोटो किसी को दिए कैसे किया जाए।
## बॉक्स में और भी टूल
- [ID फ़ोटो मेकर](https://abox.tools/hi/id-photo/): देश चुनिए। उसी देश का नियम यह हूबहू लागू कर देता है।
- [इमेज स्टैकर](https://abox.tools/hi/stack-images/): बीस फ़्रेम एक में, न बीस अपलोड, न कोई RAW कन्वर्टर।
- [इमेज ब्लैकआउट टूल](https://abox.tools/hi/redact-image/): जो हिस्सा आप ढकते हैं वह फ़ाइल से मिट जाता है, फ़ाइल के अंदर छिपा नहीं रहता।
- [EXIF व्यूअर और रिमूवर](https://abox.tools/hi/exif-editor/): देखिए कि फ़ोटो आपके बारे में क्या-क्या बता रही है। फिर उसे निकाल बाहर कीजिए।
## सवाल
### क्या मेरी फ़ोटो कहीं अपलोड होती है?
नहीं। फ़ाइल को पढ़ने, डिकोड करने और लिखने का काम आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की `Content-Security-Policy` उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। जो एक चीज़ लोड होती ही है वह खुद डिकोडर है, और वह भी इसी साइट से आता है, एक बार, आपकी फ़ोटो के बीच में आने से पहले।
### यह पेज पहली बार 1.4 MB क्यों डाउनलोड करता है?
क्योंकि HEIC वह अकेला तस्वीर फ़ॉर्मैट है जिसे ब्राउज़र नहीं खोलेगा। वह डिब्बों वाले कंटेनर में बैठा HEVC फ़्रेम है, और उसका डिकोडर सिर्फ़ Safari के पास है, वह भी Apple के हार्डवेयर पर। Chrome, Firefox और Edge फ़ाइल सिरे से मना कर देते हैं। तो HEIC कन्वर्टर को डिकोडर कहीं से तो चाहिए, और वह दो ही जगह से आ सकता है, या तो सर्वर से या पेज से। हर दूसरे कन्वर्टर ने सर्वर चुना, और ठीक इसीलिए उन सबको आपकी फ़ोटो अपलोड करानी पड़ती हैं। यह वाला इसके बजाय WebAssembly में संकलित `libheif` साथ लेकर चलता है। वह इसी साइट से आता है, पहली विज़िट के बाद कैश हो जाता है, और आपकी फ़ोटो के कहीं न जाने की पूरी कीमत बस यही है।
### क्या JPEG में तारीख, कैमरा और जगह बची रहती है?
आप चाहें तो, और यह पेज पर एक चेकबॉक्स है। चालू रहने पर EXIF ब्लॉक HEIC से निकालकर JPEG में ठीक वैसे ही लिख दिया जाता है जैसे फ़ोन ने उसे लिखा था। इससे बदली हुई फ़ोटो अब भी उसी दिन के हिसाब से क्रम में लगती है जिस दिन वह खींची गई थी, न कि जिस दिन बदली गई, और HEIC कन्वर्टरों के बारे में आम शिकायत यही होती है। सिर्फ़ एक टैग बदला जाता है, ओरिएंटेशन, जिसे “सीधा” कर दिया जाता है। घुमाव पिक्सलों पर पहले ही लागू हो चुका होता है, और जो व्यूअर उसे दोबारा लगाता, वह हर खड़ी फ़ोटो को करवट पर लिटा देता। चेकबॉक्स बंद कर दीजिए, और JPEG में तस्वीर के सिवा कुछ नहीं आता।
### क्या यह GPS निर्देशांक हटा देता है?
यह आपको बता देता है कि वे मौजूद हैं, और फिर वही करता है जो आप कहें। कुछ भी बदलने से पहले हर फ़ोटो की पंक्ति बताती है कि फ़ाइल में निर्देशांक हैं या नहीं, और इतना तो फ़ोन भी नहीं बताता। “तारीख, कैमरा और सेटिंग रहने दीजिए” से निशान हटा दीजिए, वे बाकी सब के साथ JPEG से बाहर रह जाते हैं। निशान लगा रहने दीजिए, वे साथ चले आते हैं। टैगों को ब्योरे से देखना हो, या उन्हें उन फ़ोटो से हटाना हो जो पहले से JPEG हैं, तो [EXIF व्यूअर और रिमूवर](https://abox.tools/hi/exif-editor/) उसी काम के लिए है, और वह यह सब तस्वीर दोबारा कंप्रेस किए बिना करता है।
### क्या तस्वीर दोबारा कंप्रेस होती है?
हाँ, और ऐसा करना ही पड़ता है, क्योंकि HEIC और JPEG अलग-अलग कोडेक हैं। तस्वीर को डिकोड किए और दोबारा एनकोड किए बिना एक से दूसरे में जाने का कोई रास्ता ही नहीं। जिस पर आपका ज़ोर चल सकता है वह यह है कि इसकी कीमत कितनी हो। क्वालिटी का स्लाइडर डिफ़ॉल्ट रूप से 92 पर रहता है, जहाँ फ़ोटोग्राफ़ को असली से अलग बता पाना बहुत मुश्किल है। और उस हालात के लिए मेन्यू में PNG भी है, जब आपको बिलकुल कोई नुकसान न चाहिए हो और फ़ाइल के पाँच से दस गुना बड़े होने से कोई एतराज़ न हो।
### अगर फ़ाइल का नाम .jpg है पर वह असल में HEIC है तो?
तब भी काम चलेगा। यहाँ छोड़ी गई हर फ़ाइल की पहचान उसके नाम से नहीं, उसके पहले बाइटों से होती है। नाम तो वही होता है जो उस फ़ाइल को छूने वाले आखिरी ऐप ने तय कर दिया, और “.jpg” नाम से आई HEIC उन सबसे आम वजहों में से एक है जिनकी वजह से लोग ऐसा टूल ढूँढ़ने निकलते हैं। जो फ़ाइल सचमुच JPEG या PNG है, उसे अपनी ही नकल में बदलने के बजाय एक संदेश के साथ मना कर दिया जाता है।
### क्या यह Live Photo या बर्स्ट बदल सकता है?
उसके भीतर की स्थिर तस्वीरें, हाँ। एक HEIC में एक से ज़्यादा तस्वीरें हो सकती हैं, और उसमें जितनी भी हों सब बदल दी जाती हैं, और असली फ़ाइल के नाम के आगे एक नंबर लगाकर नाम भी पा जाती हैं। Live Photo का वीडियो वाला आधा हिस्सा एक अलग फ़ाइल है जिसे फ़ोन HEIC के बगल में रखता है, इसलिए वह बदलने को यहाँ है ही नहीं। डेप्थ मैप और थंबनेल कंटेनर में तो हैं, पर वे ऐसी तस्वीरें नहीं जो किसी ने माँगी हों, इसलिए उन्हें छोड़ दिया जाता है।
### यह मेरी AVIF क्यों नहीं लेता?
क्योंकि उसके साथ करने को कुछ है ही नहीं। AVIF वही कंटेनर है जो HEIC का है, बस भीतर HEVC की जगह AV1 है, और आज का हर ब्राउज़र उसे खुद ही डिकोड कर लेता है। यानी कन्वर्टर ऐसी समस्या हल करने के लिए एक मेगाबाइट का इंजन भेज रहा होता जो आपको है ही नहीं। आपको AVIF को JPEG के रूप में चाहिए, तो [इमेज कंप्रेसर](https://abox.tools/hi/compress-image/) और [इमेज रिसाइज़र](https://abox.tools/hi/resize-image/), दोनों AVIF पढ़ते हैं और उसी डिकोडर से JPEG लिख देते हैं जो आपके ब्राउज़र के पास पहले से है।
### क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?
यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, न वॉटरमार्क। फ़ाइलों की गिनती या साइज़ पर भी कोई सीमा नहीं है, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। काम आपके अपने डिवाइस पर होता है। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी फ़ोटो के बारे में कुछ नहीं दिया जाता।
### क्या यह ऑफ़लाइन चलता है?
हाँ, डिकोडर समेत। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, और यह आपकी फ़ोटो पर ठीक पहले जैसा ही काम करता रहेगा। कुछ अपलोड नहीं हो रहा, इसका सबसे मज़बूत सबूत भी यही है। जो कन्वर्टर आपकी HEIC डिकोड होने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता। यह वाला नहीं रुकता।
## प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
- **आपकी फ़ोटो के जाने के लिए कोई जगह ही नहीं है।** यह पेज जिन-जिन पतों से संपर्क कर सकता है, Content-Security-Policy उन सबके नाम गिना देती है, और उनमें से एक भी इस साइट का नहीं है। यहाँ ऐसा कोई एंडपॉइंट है ही नहीं जहाँ आपकी फ़ाइलें जमा हो सकें, और होता भी तो कोड में ऐसा कुछ नहीं है जो उन्हें भेजता।
- **डिकोडर यहीं से आया, और यहीं रहता है।** HEIC दरअसल एक डिब्बों वाले फ़ॉर्मैट में बैठी HEVC है, और Safari के सिवा कोई ब्राउज़र उसे डिकोड नहीं करेगा। इसलिए यह पेज WebAssembly में संकलित `libheif` साथ लेकर चलता है, करीब 1.4 MB, जो इसी रिपॉज़िटरी में मौजूद है, इसी ऑरिजिन से आता है, और यहाँ की हर दूसरी फ़ाइल की तरह सर्विस वर्कर के कैश में बैठ जाता है। उसे किसी CDN से नहीं लाया जाता, क्योंकि इससे हर विज़िट के रास्ते में एक तीसरा पक्ष आ बैठता और टूल ऑफ़लाइन चलना बंद कर देता। बाइनरी स्क्रिप्ट के बगल में नहीं, उसके भीतर है, ठीक इसीलिए कि उसे चालू करने के लिए कुछ लाने की ज़रूरत ही न पड़े।
- **यहाँ कुछ भी कहीं से कुछ नहीं मँगाता।** इस टूल के लिए लिखी किसी भी फ़ाइल में न `fetch` है, न `XMLHttpRequest`, न `sendBeacon`। हर Emscripten बिल्ड की तरह इस साथ लाए इंजन में भी वे लोडर रास्ते मौजूद हैं जो किसी URL से `.wasm` ले आते हैं। उन्हें लिया नहीं जाता, क्योंकि बाइनरी पहले से हाथ में है। और लिया भी जाता, तो `connect-src` में Google के माप वाले एंडपॉइंट के सिवा किसी का नाम है ही नहीं, इसलिए ब्राउज़र उसे मना कर देता। सबूत पॉलिसी है, वादा नहीं।
- **मेटाडेटा यहीं पढ़ा जाता है और आपको बता दिया जाता है।** पेज पर बनी सूची बताती है कि हर फ़ोटो क्या-क्या ढो रही है, यानी तारीख, कैमरा, और यह कि उसमें GPS निर्देशांक हैं या नहीं। JPEG किसी को सौंपने से पहले शायद आप यही जानना चाहें। उसे इसी ब्राउज़र में `src/boxes.js` फ़ाइल पढ़ती है, इसी पेज पर दिखाती है, और फिर पूरी तरह आपकी मर्ज़ी से या तो आपकी JPEG में लिख देती है या छोड़ देती है। इस रिपॉज़िटरी में ऐसा कोई अपना एनालिटिक्स इवेंट नहीं है जो फ़ाइल का नाम, तारीख, निर्देशांक या गिनती साथ ले जाता हो।
- **Google क्या लोड करता है, और उसे क्या नहीं दिया जाता।** विज्ञापन और माप वाली स्क्रिप्ट Google से आती हैं, और दान का बटन Buy Me a Coffee से। इनमें से किसी को भी आपकी फ़ोटो के बारे में कुछ नहीं सौंपा जाता। फ़ाइल पढ़ने, डिकोड करने या लिखने वाली हर पंक्ति इसी ऑरिजिन से आती है और रिपॉज़िटरी में मौजूद है।
- **यह ऑफ़लाइन भी चलता है।** पेज एक बार लोड कीजिए और नेटवर्क काट दीजिए। टूल जस का तस रहेगा, क्योंकि डिकोडर उसी के साथ कैश हो चुका है। सबसे आसान सबूत यही है, और इस साइट पर कहीं और से यहाँ ज़्यादा मज़बूत भी। जो कन्वर्टर आपकी फ़ोटो डिकोड होने के लिए कहीं भेजता, वह ऐसा कर ही नहीं पाता।
**खुद जाँच लीजिए।** ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा `dist` ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं: https://github.com/A-Box-of-Tools/website
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए `config/site.toml`, डिकोडर कैसे लोड होता है और उसे करने की क्या इजाज़त है, यह देखने के लिए `src/heif.js`, फ़ोटो का मेटाडेटा ढूँढ़ने वाली कंटेनर-पार्सिंग के लिए `src/boxes.js`, और JPEG में जाते वक्त उस मेटाडेटा का क्या होता है, इसके लिए `src/exif.js`। खुद इंजन `vendor/libheif.js` है, बिना किसी बदलाव के, और उसके बगल में उसका लाइसेंस।
HEIC फ़ोटो को JPG में कैसे बदलें
अपनी HEIC फ़ोटो चुनिए। उन्हें पिकर पर छोड़ दीजिए या हाथ से चुन लीजिए, सीधे फ़ोन के बैकअप से या डेस्कटॉप के किसी फ़ोल्डर से। ब्राउज़र उन्हें आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता। सूची बताती है कि हर फ़ाइल क्या है और उसके भीतर क्या है।
देखिए कि फ़ोटो क्या-क्या ढो रही हैं। हर पंक्ति उस तारीख का नाम लेती है जब वह खींची गई, कैमरे का नाम लेती है, और हरे रंग में यह भी बताती है कि फ़ाइल में GPS निर्देशांक हैं या नहीं। हरा रंग इसलिए, क्योंकि ध्यान देने लायक हिस्सा यही है। यह सब तस्वीर डिकोड किए बिना कंटेनर से पढ़ा जाता है, इसलिए इसकी कोई कीमत नहीं लगती और यह तुरंत दिख जाता है।
फ़ॉर्मैट चुनिए, और ब्योरे के बारे में फ़ैसला कीजिए। कोई खास वजह न हो तो JPEG ही चुनिए, क्योंकि यही वह फ़ॉर्मैट है जो हर जगह खुलता है, और बदलने का पूरा मकसद भी यही है। क्वालिटी का स्लाइडर 92 पर है, यानी उस सेटिंग पर जहाँ फ़ोटोग्राफ़ को असली से अलग बता पाना मुश्किल होता है। चेकबॉक्स तय करता है कि तारीख, कैमरा और जगह साथ आएँ या नहीं।
“बदलिए” दबाइए, और डाउनलोड कीजिए। डिकोडर पहली बार बदलने पर आता है, करीब 1.4 MB और बस एक ही बार। उसके बाद हर फ़ोटो आपकी अपनी मशीन पर डिकोड होती है और लिखी जाती है। एक फ़ाइल पर डाउनलोड का बटन मिलता है, और कई पर एक ZIP भी।
विस्तार से
आपके फ़ोन ने जो फ़ोटो सहेजी, और वह फ़ॉर्मैट जिसे कुछ भी नहीं खोलताiPhone फ़ोटो को HEIC में सहेजता है, और आधा इंटरनेट उसे खोल ही नहीं पाता। यह फ़ॉर्मैट क्या है, सिर्फ़ Safari ही इसे क्यों डिकोड करता है, बदलने में तस्वीर की क्या कीमत लगती है, और यह सब बिना फ़ोटो किसी को दिए कैसे किया जाए।
नहीं। फ़ाइल को पढ़ने, डिकोड करने और लिखने का काम आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की Content-Security-Policy उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। जो एक चीज़ लोड होती ही है वह खुद डिकोडर है, और वह भी इसी साइट से आता है, एक बार, आपकी फ़ोटो के बीच में आने से पहले।
यह पेज पहली बार 1.4 MB क्यों डाउनलोड करता है?
क्योंकि HEIC वह अकेला तस्वीर फ़ॉर्मैट है जिसे ब्राउज़र नहीं खोलेगा। वह डिब्बों वाले कंटेनर में बैठा HEVC फ़्रेम है, और उसका डिकोडर सिर्फ़ Safari के पास है, वह भी Apple के हार्डवेयर पर। Chrome, Firefox और Edge फ़ाइल सिरे से मना कर देते हैं। तो HEIC कन्वर्टर को डिकोडर कहीं से तो चाहिए, और वह दो ही जगह से आ सकता है, या तो सर्वर से या पेज से। हर दूसरे कन्वर्टर ने सर्वर चुना, और ठीक इसीलिए उन सबको आपकी फ़ोटो अपलोड करानी पड़ती हैं। यह वाला इसके बजाय WebAssembly में संकलित libheif साथ लेकर चलता है। वह इसी साइट से आता है, पहली विज़िट के बाद कैश हो जाता है, और आपकी फ़ोटो के कहीं न जाने की पूरी कीमत बस यही है।
क्या JPEG में तारीख, कैमरा और जगह बची रहती है?
आप चाहें तो, और यह पेज पर एक चेकबॉक्स है। चालू रहने पर EXIF ब्लॉक HEIC से निकालकर JPEG में ठीक वैसे ही लिख दिया जाता है जैसे फ़ोन ने उसे लिखा था। इससे बदली हुई फ़ोटो अब भी उसी दिन के हिसाब से क्रम में लगती है जिस दिन वह खींची गई थी, न कि जिस दिन बदली गई, और HEIC कन्वर्टरों के बारे में आम शिकायत यही होती है। सिर्फ़ एक टैग बदला जाता है, ओरिएंटेशन, जिसे “सीधा” कर दिया जाता है। घुमाव पिक्सलों पर पहले ही लागू हो चुका होता है, और जो व्यूअर उसे दोबारा लगाता, वह हर खड़ी फ़ोटो को करवट पर लिटा देता। चेकबॉक्स बंद कर दीजिए, और JPEG में तस्वीर के सिवा कुछ नहीं आता।
क्या यह GPS निर्देशांक हटा देता है?
यह आपको बता देता है कि वे मौजूद हैं, और फिर वही करता है जो आप कहें। कुछ भी बदलने से पहले हर फ़ोटो की पंक्ति बताती है कि फ़ाइल में निर्देशांक हैं या नहीं, और इतना तो फ़ोन भी नहीं बताता। “तारीख, कैमरा और सेटिंग रहने दीजिए” से निशान हटा दीजिए, वे बाकी सब के साथ JPEG से बाहर रह जाते हैं। निशान लगा रहने दीजिए, वे साथ चले आते हैं। टैगों को ब्योरे से देखना हो, या उन्हें उन फ़ोटो से हटाना हो जो पहले से JPEG हैं, तो EXIF व्यूअर और रिमूवर उसी काम के लिए है, और वह यह सब तस्वीर दोबारा कंप्रेस किए बिना करता है।
क्या तस्वीर दोबारा कंप्रेस होती है?
हाँ, और ऐसा करना ही पड़ता है, क्योंकि HEIC और JPEG अलग-अलग कोडेक हैं। तस्वीर को डिकोड किए और दोबारा एनकोड किए बिना एक से दूसरे में जाने का कोई रास्ता ही नहीं। जिस पर आपका ज़ोर चल सकता है वह यह है कि इसकी कीमत कितनी हो। क्वालिटी का स्लाइडर डिफ़ॉल्ट रूप से 92 पर रहता है, जहाँ फ़ोटोग्राफ़ को असली से अलग बता पाना बहुत मुश्किल है। और उस हालात के लिए मेन्यू में PNG भी है, जब आपको बिलकुल कोई नुकसान न चाहिए हो और फ़ाइल के पाँच से दस गुना बड़े होने से कोई एतराज़ न हो।
अगर फ़ाइल का नाम .jpg है पर वह असल में HEIC है तो?
तब भी काम चलेगा। यहाँ छोड़ी गई हर फ़ाइल की पहचान उसके नाम से नहीं, उसके पहले बाइटों से होती है। नाम तो वही होता है जो उस फ़ाइल को छूने वाले आखिरी ऐप ने तय कर दिया, और “.jpg” नाम से आई HEIC उन सबसे आम वजहों में से एक है जिनकी वजह से लोग ऐसा टूल ढूँढ़ने निकलते हैं। जो फ़ाइल सचमुच JPEG या PNG है, उसे अपनी ही नकल में बदलने के बजाय एक संदेश के साथ मना कर दिया जाता है।
क्या यह Live Photo या बर्स्ट बदल सकता है?
उसके भीतर की स्थिर तस्वीरें, हाँ। एक HEIC में एक से ज़्यादा तस्वीरें हो सकती हैं, और उसमें जितनी भी हों सब बदल दी जाती हैं, और असली फ़ाइल के नाम के आगे एक नंबर लगाकर नाम भी पा जाती हैं। Live Photo का वीडियो वाला आधा हिस्सा एक अलग फ़ाइल है जिसे फ़ोन HEIC के बगल में रखता है, इसलिए वह बदलने को यहाँ है ही नहीं। डेप्थ मैप और थंबनेल कंटेनर में तो हैं, पर वे ऐसी तस्वीरें नहीं जो किसी ने माँगी हों, इसलिए उन्हें छोड़ दिया जाता है।
यह मेरी AVIF क्यों नहीं लेता?
क्योंकि उसके साथ करने को कुछ है ही नहीं। AVIF वही कंटेनर है जो HEIC का है, बस भीतर HEVC की जगह AV1 है, और आज का हर ब्राउज़र उसे खुद ही डिकोड कर लेता है। यानी कन्वर्टर ऐसी समस्या हल करने के लिए एक मेगाबाइट का इंजन भेज रहा होता जो आपको है ही नहीं। आपको AVIF को JPEG के रूप में चाहिए, तो इमेज कंप्रेसर और इमेज रिसाइज़र, दोनों AVIF पढ़ते हैं और उसी डिकोडर से JPEG लिख देते हैं जो आपके ब्राउज़र के पास पहले से है।
क्या यह मुफ़्त है, और क्या इसके लिए खाता बनाना पड़ेगा?
यह मुफ़्त है, और यहाँ न कोई खाता है, न साइन-इन, न ट्रायल, न वॉटरमार्क। फ़ाइलों की गिनती या साइज़ पर भी कोई सीमा नहीं है, क्योंकि इनका बिल चुकाने वाला कोई सर्वर है ही नहीं। काम आपके अपने डिवाइस पर होता है। साइट पर विज्ञापन हैं और खर्च वही उठाते हैं, लेकिन विज्ञापनों को आपकी फ़ोटो के बारे में कुछ नहीं दिया जाता।
क्या यह ऑफ़लाइन चलता है?
हाँ, डिकोडर समेत। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, और यह आपकी फ़ोटो पर ठीक पहले जैसा ही काम करता रहेगा। कुछ अपलोड नहीं हो रहा, इसका सबसे मज़बूत सबूत भी यही है। जो कन्वर्टर आपकी HEIC डिकोड होने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता। यह वाला नहीं रुकता।