छोटा जवाब
HEIC से JPG वाला टूल खोलिए, फ़ोटो भीतर छोड़ दीजिए, और “बदलिए” दबा दीजिए। क्वालिटी का स्लाइडर जहाँ है वहीं रहने दीजिए, और जब तक कोई खास वजह न हो, “तारीख, कैमरा और सेटिंग रहने दीजिए” पर निशान लगा ही रहने दीजिए। आपको वापस JPEG मिलती हैं, हर एक के लिए एक डाउनलोड बटन, और कई हों तो एक ZIP।
इस दौरान कुछ भी अपलोड नहीं होता। इस खास काम के लिए यह असामान्य है, और ऐसा क्यों है, इस पेज का दिलचस्प आधा हिस्सा वही है।
HEIC असल में है क्या
HEIC उस तरह इमेज फ़ॉर्मैट है ही नहीं जिस तरह JPEG है। वह एक कंटेनर है, यानी वही डिब्बों वाला ढाँचा जिससे MP4 बनी होती है, और उसके भीतर HEVC वीडियो का एक स्थिर फ़्रेम बैठा होता है। HEVC, जिसे H.265 भी कहते हैं, वह कोडेक है जिसने आपके पुराने कैमकॉर्डर वाले कोडेक की जगह ली, और वह बहुत अच्छा है: HEIC में रखी iPhone की फ़ोटो उसी क्वालिटी पर उसी फ़ोटो की JPEG के मुकाबले करीब आधे साइज़ की होती है।
Apple ने 2017 में iOS 11 में इस पर स्विच किया और इसे डिफ़ॉल्ट बना दिया। यानी जब तक कोई Settings में जाकर “Most Compatible” न चुन ले, तब तक उसके फ़ोन ने करीब एक दशक से जो भी फ़ोटो खींची है वह ऐसे फ़ॉर्मैट में है जिसे:
- Windows, Store से एक्सटेंशन लिए बिना प्रीव्यू तक नहीं करेगा;
- ज़्यादातर वेब अपलोड फ़ॉर्म सिरे से लौटा देते हैं;
- ढेर सारे पुराने डेस्कटॉप सॉफ़्टवेयर ने कभी सुना ही नहीं;
- और Safari के सिवा कोई वेब ब्राउज़र दिखाएगा ही नहीं।
फ़ोटो में कोई खराबी नहीं है। वह उस JPEG से बेहतर फ़ाइल है जो वह होती। वह बस ऐसी भाषा में लिखी है जो दुनिया के ज़्यादातर हिस्से ने कभी सीखी ही नहीं।
इसे सिर्फ़ Safari ही क्यों खोलता है
यही वह हिस्सा है जो आपके अब तक इस्तेमाल किए हर कन्वर्टर की व्याख्या कर देता है, इसलिए इस पर एक पैराग्राफ़ बनता है।
HEVC डिकोड करने के लिए HEVC डिकोडर चाहिए, और HEVC पेटेंट वाला है। उसका लाइसेंस एक से ज़्यादा पेटेंट पूल चलाते हैं, और डिकोडर भेजने का मतलब है किसी को पैसा देना। ब्राउज़र इससे ऑपरेटिंग सिस्टम का सहारा लेकर निपटते हैं। Chrome ऐसी मशीन पर HEVC वीडियो चला देगा जिसके हार्डवेयर में पहले से लाइसेंस वाला डिकोडर है, पर वह रास्ता वीडियो चलाने के लिए जोड़ा गया है, स्थिर तस्वीरों के लिए नहीं। इसलिए <img> को दी गई HEIC मना कर दी जाती है, Chrome, Firefox और Edge, तीनों में, हर ऑपरेटिंग सिस्टम पर।
Apple के हार्डवेयर पर Safari अपवाद है, क्योंकि macOS और iOS के पास डिकोडर है और Safari को उससे पूछने की इजाज़त है। बाकी हर जगह ब्राउज़र उस तस्वीर को डिकोड कर ही नहीं सकता।
इससे कन्वर्टर के पास ठीक दो ही रास्ते बचते हैं, और इन दोनों के बीच का चुनाव ही इस तरह के टूल की पूरी कहानी है।
लगभग हर HEIC कन्वर्टर अपलोड क्यों चाहता है
पहला रास्ता: डिकोडर सर्वर पर रख दीजिए। फ़ोटो अपलोड होती है, ऐसी मशीन पर डिकोड होती है जो आपने कभी देखी नहीं, JPEG के रूप में दोबारा एनकोड होती है, और वापस भेज दी जाती है। लगभग हर “मुफ़्त ऑनलाइन HEIC कन्वर्टर” यही करता है, और इसीलिए उन सबको आपकी फ़ाइलें चाहिए। यह आलस नहीं है, क्योंकि ब्राउज़र यह अपने बल पर सचमुच कर ही नहीं सकता।
इसकी कीमत क्या है, यह सीधे-सीधे कह देना अच्छा है। फ़ोन की फ़ोटो ज़्यादातर लोगों की सबसे निजी फ़ाइलें होती हैं, और iPhone से सीधे निकली HEIC आम तौर पर उस जगह के निर्देशांक ढोती है जहाँ वह खींची गई, कुछ मीटर तक सटीक, साथ में सेकंड तक की तारीख और कैमरे की पहचान। उनका पूरा फ़ोल्डर किसी मुफ़्त सेवा पर अपलोड करने का मतलब है तस्वीरें भी सौंप देना और यह सब भी। उसके आगे क्या होगा, यह उस निजता नीति से तय होता है जो आपने पढ़ी नहीं, उस सर्वर पर जिसे आप जाँच नहीं सकते, उस न्यायक्षेत्र में जो आपने चुना नहीं।
दूसरा रास्ता: डिकोडर पेज पर रख दीजिए। यह वाला यही करता है। वह WebAssembly में संकलित libheif को इसी साइट से आने वाली फ़ाइल के रूप में साथ लेकर चलता है, करीब 1.4 MB, जो एक बार डाउनलोड होकर फिर कैश में रह जाता है। आपका ब्राउज़र उसे आपकी अपनी मशीन पर, आपके अपने हार्डवेयर पर चलाता है, और फ़ोटो कहीं जाती ही नहीं। पेज एक बार लोड कर लीजिए और आप इंटरनेट पूरी तरह काट सकते हैं, और वह तब भी चलता रहेगा। यह वह चीज़ है जो अपलोड करने वाला कोई कन्वर्टर कर ही नहीं सकता, और सबसे आसान सबूत भी यही है।
पूरी कीमत बस वही 1.4 MB है। अगर आपका कनेक्शन नापकर मिलता है तो यह असली खर्च है और जानने लायक है; इसीलिए पेज उसे चुपचाप डाउनलोड करने के बजाय साफ़ कह देता है।
बदलने में तस्वीर की क्या कीमत लगती है
HEIC और JPEG अलग-अलग कोडेक हैं, इसलिए एक से दूसरे तक जाने का ऐसा कोई रास्ता नहीं जिसमें तस्वीर को डिकोड करके दोबारा एनकोड न करना पड़े। वह दूसरा एनकोड नुकसान वाला है। व्यवहार में यह उतना मायने नहीं रखता जितना सुनाई देता है:
- क्वालिटी 92 पर, यानी जहाँ से कन्वर्टर शुरू करता है, किसी भी आम देखने के साइज़ पर फ़ोटोग्राफ़ को असली से अलग बता पाना बहुत मुश्किल है। आप चिकने ग्रेडिएंट में फ़र्क ढूँढ़ेंगे, जैसे साफ़ आसमान में, और आम तौर पर वे आपको मिलेंगे नहीं।
- JPEG बड़ी होगी। आम तौर पर एक-तिहाई ज़्यादा से लेकर दोगुने साइज़ तक के बीच कहीं, क्योंकि JPEG 1992 का कोडेक है और HEVC नहीं। सौदा यही है: बड़ी फ़ाइल, जिसे हर चीज़ खोल लेती है।
- दो बार बदलने से बचना है। हर नुकसान वाला एनकोड थोड़ी कीमत लेता है। असली HEIC से बदलिए, उस JPEG से नहीं जो कोई पहले ही आपके लिए बना चुका है, और एक ही बार बदलिए।
अगर आपको बिलकुल कोई नुकसान नहीं चाहिए, तो फ़ॉर्मैट के मेन्यू में PNG भी है। फ़ाइल के लिए तैयार रहिए: PNG के रूप में फ़ोटोग्राफ़ आम तौर पर JPEG से पाँच से दस गुना बड़ी होती है, क्योंकि PNG का कंप्रेशन घास और त्वचा के लिए नहीं, सपाट रंग और लकीरों वाली कला के लिए बना था।
तारीख, कैमरा और निर्देशांक
HEIC कन्वर्टरों के बारे में आम शिकायत यह होती है कि फ़ोटो उस दिन को गँवाकर लौटती हैं जिस दिन वे खींची गई थीं, इसलिए पूरी छुट्टी की तस्वीरें आज की तारीख के नीचे लाइब्रेरी की तलहटी में जा बैठती हैं। ऐसा इसलिए होता है कि कैनवस के ज़रिए बदलने पर आपको पिक्सल मिलते हैं और उसके सिवा कुछ नहीं क्योंकि कैनवस कोई टैग रखता ही नहीं। इसलिए जब तक कन्वर्टर जाकर मेटाडेटा अलग से न ले आए, वह बस चला जाता है।
यहाँ का टूल EXIF ब्लॉक को HEIC से निकालकर JPEG में लिख देता है, इसलिए तारीख बची रहती है। इसके लिए एक चेकबॉक्स है, और वह डिफ़ॉल्ट रूप से लगा रहता है। उसका निशान हटा दीजिए और JPEG में तस्वीर के सिवा कुछ नहीं आता।
तय करने से पहले सूची देख लीजिए: हर फ़ोटो की पंक्ति बताती है कि उस फ़ाइल में GPS निर्देशांक हैं या नहीं, और वह यह कुछ भी बदलने से पहले बता देती है। अगर फ़ोटो कहीं सार्वजनिक जा रही हैं, तो पढ़ने लायक पंक्ति यही है। अगर वे आपकी अपनी लाइब्रेरी में जा रही हैं, तो मेटाडेटा रखना लगभग निश्चित रूप से वही है जो आप चाहते हैं।
आप जो भी चुनें, एक टैग बदलता ही है, और यह जान लेना अच्छा है कि क्यों। HEIC अपना घुमाव दो जगह दर्ज रखती है: कंटेनर में, और EXIF ब्लॉक में। डिकोडर डिकोड करते वक्त कंटेनर वाला घुमाव लगा देता है, इसलिए जो पिक्सल सौंपे जाते हैं वे पहले से ही सीधे होते हैं। अगर EXIF तब भी कहती रहती “इसे 90 डिग्री घुमाइए”, तो व्यूअर उसे दोबारा घुमा देता और हर खड़ी फ़ोटो करवट पर लेटी हुई निकलती। इसलिए ओरिएंटेशन टैग को सीधा कर दिया जाता है और बाकी सब कुछ हूबहू वैसे ही उतार दिया जाता है जैसे फ़ोन ने उसे लिखा था।
अगर आप टैगों को ब्योरे से देखना चाहते हैं, या उन्हें उन फ़ोटो से हटाना चाहते हैं जो पहले से JPEG हैं, तो वह अलग काम है और उसके लिए अलग गाइड है।
वे बातें जो लोगों को चौंका देती हैं
- “.jpg” नाम वाली HEIC। बेहद आम: रास्ते में किसी ने उसका नाम बदल दिया, खुद उसे नहीं बदला, और इसीलिए वह अब भी खुलती नहीं। कन्वर्टर पर छोड़ी गई हर फ़ाइल की पहचान उसके नाम से नहीं, उसके पहले बाइटों से होती है, इसलिए ऐसी फ़ाइल बखूबी चल जाती है। और इसीलिए जो फ़ाइल सचमुच JPEG है, उसे अपनी ही नकल में बदलने के बजाय यह बता दिया जाता है।
- एक फ़ाइल, कई तस्वीरें। बर्स्ट या Live Photo में एक से ज़्यादा स्थिर तस्वीरें हो सकती हैं। सब बदली जाती हैं, और अतिरिक्त वाली असली नाम के आगे नंबर लगाकर नाम पा जाती हैं। Live Photo का वीडियो वाला आधा हिस्सा एक अलग फ़ाइल है जिसे फ़ोन HEIC के बगल में रखता है, इसलिए वह बदलने को उसमें है ही नहीं।
- AVIF, HEIC नहीं है। वे एक जैसी दिखती हैं, यानी वही कंटेनर और भीतर अलग कोडेक, पर आज का हर ब्राउज़र AVIF खुद ही खोल लेता है, इसलिए बदलने को कुछ है ही नहीं और टूल काम करने का दिखावा करने के बजाय यह कह देता है।
- समस्या को जड़ से रोकना। फ़ोन पर: Settings → Camera → Formats → Most Compatible। उसके बाद से नई फ़ोटो JPEG होती हैं। इसमें भंडारण ज़्यादा लगता है और इससे वे फ़ोटो नहीं बदलतीं जो आपके पास पहले से हैं, पर इसका मतलब है कि यह काम दोबारा कभी नहीं करना पड़ेगा।
- साझा करने पर कभी-कभी वह खुद ही बदल जाती है। किसी गैर-Apple डिवाइस को AirDrop करने या ईमेल करने पर अक्सर JPEG ही सौंपी जाती है, क्योंकि iOS बाहर जाते वक्त बदल देता है। अगर कोई फ़ोटो फिर भी HEIC के रूप में पहुँची है, तो वह ऐसे रास्ते से आई है जो ऐसा नहीं करता।
कैसे पहचानें कि कोई कन्वर्टर अपलोड कर रहा है
यह किसी भी टूल पर लागू होता है, सिर्फ़ इस वाले पर नहीं, और इसमें करीब पंद्रह सेकंड लगते हैं।
- पेज खोलिए, फिर अपने ब्राउज़र के डेवलपर टूल खोलकर Network टैब पर जाइए।
- कोई फ़ोटो बदलिए, और देखते रहिए। जो टूल आपकी मशीन पर डिकोड करता है वह उस पल कोई रिक्वेस्ट करता ही नहीं। जो टूल अपलोड करता है वह आपकी फ़ोटो जितनी बड़ी एक रिक्वेस्ट करता है, और साइज़ आपको दिख जाता है।
- या, और आसान तरीके से: पेज लोड कीजिए, इंटरनेट काट दीजिए, और कुछ बदलकर देखिए। जो टूल आपकी फ़ोटो डिकोड होने कहीं भेजता है वह काम करना बंद कर देता है। जो डिकोडर साथ लेकर चलता है वह नहीं करता।
यहाँ का कन्वर्टर दोनों जाँचों पर खरा उतरने के लिए बना है, और इसी दलील का लंबा रूप क्या फ़ाइलें अपलोड करना सुरक्षित है में है।