iPhone की HEIC फ़ोटो से छिपा मेटाडेटा हटाएं
01 HEIC, JPEG से अलग समस्या क्यों है
iOS 11 (2017) से, iPhone डिफ़ॉल्ट रूप से JPEG की जगह HEIC में फ़ोटो सेव करता है। HEIC किसी भी और फ़ोटो जितना ही मेटाडेटा ले जाता है - कैमरे का मॉडल, GPS कोऑर्डिनेट, टाइमस्टैंप, एम्बेडेड थंबनेल - लेकिन फ़ाइल का अंदरूनी बनावट अलग है: यह एक ISO-BMFF कंटेनर है (MP4 वीडियो फ़ाइलों जैसा परिवार), जिसमें HEVC-एनकोडेड इमेज डेटा है, न कि पुराना JPEG फ़ॉर्मैट जिसके लिए ज़्यादातर "EXIF हटाने वाले" टूल शुरुआत में बनाए गए थे। यह फ़र्क दिखने से ज़्यादा मायने रखता है: HEVC एनकोडिंग पेटेंट से सुरक्षित है, इसलिए JPEG या PNG जैसा परिपक्व, पूरी तरह ओपन-सोर्स डिकोडर मौजूद नहीं है - इसीलिए कई "EXIF हटाने वाले" टूल या तो HEIC बिल्कुल स्वीकार नहीं करते, या पहले चुपचाप सर्वर के ज़रिए कन्वर्ट करते हैं।
और गहराई से जानें: यह टूल बिना अपलोड किए HEIC को असल में कैसे संभालता है
यह इस साइट का इकलौता फ़ॉर्मैट है जिसे जानबूझकर बाकी सभी से अलग तरीके से संभाला जाता है। फ़िलहाल किसी C भाषा की लाइब्रेरी के बिना HEVC-एनकोडेड पिक्सेल डिकोड करने का कोई तरीका नहीं है, और जो C लाइब्रेरी यह कर सकती हैं (असली फ़ोटो ऐप जैसी ही श्रेणी की) वे WebAssembly में साफ़-सुथरी क्रॉस-कंपाइल नहीं होतीं। इसलिए, इस डिपेंडेंसी को मुख्य इंजन में लाने के बजाय, HEIC सपोर्ट एक दूसरा, खासतौर पर बनाया गया अलग WebAssembly मॉड्यूल इस्तेमाल करता है, जो HEIC फ़ाइल को कच्चे पिक्सेल में डिकोड करता है - यह सब इसी ब्राउज़र टैब में होता है, कहीं कुछ नहीं भेजा जाता। इन पिक्सेल को तुरंत एक सामान्य PNG में दोबारा एनकोड किया जाता है, और यही PNG असली मेटाडेटा हटाने और खतरे की जांच की उसी प्रक्रिया से गुज़रती है जो इस साइट के किसी भी और फ़ॉर्मैट के साथ होती है। इसका आपके लिए सिर्फ़ इतना मतलब है कि रिपोर्ट में प्रोसेस किए गए फ़ॉर्मैट के तौर पर "PNG" दिखेगा, साथ में यह नोट कि यह HEIC से कन्वर्ट किया गया है, क्योंकि असली क्लीनिंग प्रक्रिया जब इस फ़ाइल को देखती है, तब असल में यही होती है।
iPhone फ़ोटो में असल में क्या होता है
जनरल मेटाडेटा पेज पर बताई गई हर बात यहां लागू होती है - कुछ मीटर तक सटीक GPS कोऑर्डिनेट, कैमरे और लेंस की जानकारी, सटीक तारीख और समय, एक एम्बेडेड थंबनेल जो क्रॉप से पहले की पुरानी वर्ज़न दिखा सकती है। iPhone कुछ और भी जोड़ता है: Live Photos स्टिल इमेज के साथ एक छोटा वीडियो क्लिप भी सेव करता है, जिसकी अपनी टाइमस्टैंप और लोकेशन डेटा होती है; पोर्ट्रेट मोड और सिनेमैटिक मोड में खींची गई फ़ोटो में एक्स्ट्रा डेप्थ मैप डेटा हो सकता है; और "फ़ोटोज़" ऐप में की गई एडिटिंग (क्रॉप, फ़िल्टर, मार्कअप) अक्सर नॉन-डिस्ट्रक्टिव होती है, यानी भले ही आपको लगे कि आपने कुछ क्रॉप कर दिया, मूल बिना-एडिट वर्ज़न - उसकी मूल मेटाडेटा सहित - फ़ाइल में रिकवर होने लायक मौजूद रह सकती है।
"HEIC को JPG में बदलना" मेटाडेटा हटाने जैसा क्यों नहीं है
बहुत सारे मुफ़्त "HEIC से JPG" कन्वर्टर टूल मौजूद हैं, और फ़ॉर्मैट बदलने से साइड-इफ़ेक्ट के तौर पर कुछ मेटाडेटा हट भी सकता है - लेकिन यह उस टूल जैसा नहीं है जो असल में जानबूझकर मेटाडेटा हटाने और आपको दिखाने के लिए बनाया गया हो कि वहां क्या था। कुछ कन्वर्टर टूल जानबूझकर EXIF रखते हैं (उन फ़ोटोग्राफ़र के लिए जो इसे रखना चाहते हैं), कुछ असंगत रूप से हटाते हैं, यह इस बात पर निर्भर है कि उस कन्वर्टर की लाइब्रेरी किन फ़ील्ड को सपोर्ट करती है, और ज़्यादातर मेटाडेटा के अलावा कुछ भी नहीं जांचते - मल्टी-फ़ॉर्मैट पेलोड या स्टेगेनोग्राफ़ी से छिपाया गया कंटेंट एक साधारण फ़ॉर्मैट कन्वर्ज़न से बिना किसी रुकावट के गुज़र सकता है, क्योंकि इन्हें हटाना कभी उन टूल का मकसद ही नहीं था। चाहे इनपुट फ़ॉर्मैट कुछ भी हो, यहां असल में जो होता है वह है कच्चे पिक्सेल में डिकोड करना और फ़ाइल को शून्य से दोबारा बनाना, जो मेटाडेटा हटाने को साइड-इफ़ेक्ट नहीं, बल्कि एक स्ट्रक्चरल गारंटी बना देता है - यह वही रीकंस्ट्रक्शन है जिसे तुलना पेज पर और ज़्यादा विस्तार से समझाया गया है।