# 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` है, बिना किसी बदलाव के, और उसके बगल में उसका लाइसेंस।
