Exifinterface

इमेज फ़ाइल के EXIF टैग पढ़ना और लिखना.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
3 दिसंबर, 2025 1.4.2 - - -

डिपेंडेंसी का एलान करना

Exifinterface पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    implementation "androidx.exifinterface:exifinterface:1.4.2"
}

Kotlin

dependencies {
    implementation("androidx.exifinterface:exifinterface:1.4.2")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.4

वर्शन 1.4.2

03 दिसंबर, 2025

androidx.exifinterface:exifinterface:1.4.2 रिलीज़ हो गया है. वर्शन 1.4.2 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • किसी भी मार्कर से पहले, अतिरिक्त (अनुमति वाले) 0xFF बाइट के साथ JPEGs को पार्स करने की सुविधा.

वर्शन 1.4.1

23 अप्रैल, 2025

androidx.exifinterface:exifinterface:1.4.1 रिलीज़ हो गया है. वर्शन 1.4.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • TAG_XMP के लिए setAttribute को शून्य पास करने पर, अपवाद की स्थिति पैदा करने वाली गड़बड़ी को ठीक किया गया है.

वर्शन 1.4.0

26 फ़रवरी, 2025

androidx.exifinterface:exifinterface:1.4.0 रिलीज़ हो गया है. वर्शन 1.4.0 में ये बदलाव शामिल हैं.

वर्शन 1.4.0-rc01

29 जनवरी, 2025

androidx.exifinterface:exifinterface:1.4.0-rc01 को beta01 के बाद से बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.4.0-rc01 में ये बदलाव शामिल हैं.

वर्शन 1.4.0-beta01

15 जनवरी, 2025

androidx.exifinterface:exifinterface:1.4.0-beta01 रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • HEIC XMP हैंडलिंग को अपडेट किया गया है. इससे फ़ाइल के अलग-अलग सेगमेंट में मौजूद XMP डेटा को प्राथमिकता दी जाएगी. इसके बजाय, Exif डेटा में टैग 700 को प्राथमिकता दी जाएगी.

गड़बड़ियां ठीक की गईं

  • ExifInterface.getThumbnail*() को कॉल करने के बाद, ExifInterface.getThumbnail*() को सही तरीके से काम करने से जुड़ी समस्या ठीक की गई. इससे पहले, कॉल सफल हो जाते थे, लेकिन नतीजे गलत/अनडिफ़ाइंड होते थेsaveAttributes()
  • eXIf chunk में मौजूद टैग 700 के बजाय, अलग iTXt XMP chunk को पढ़ने और लिखने के लिए, PNG XMP हैंडलिंग से जुड़ी समस्या ठीक की गई.
  • WebP फ़ॉर्मैट के अलावा अन्य फ़ॉर्मैट के डेटा वाली इमेज फ़ाइलों को मैनेज करते समय, WebP में इमेज खराब होने की समस्या को ठीक किया गया है. (b/385766064).

वर्शन 1.4.0-alpha01

13 नवंबर, 2024

androidx.exifinterface:exifinterface:1.4.0-alpha01 रिलीज़ हो गया है. वर्शन 1.4.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • HEIF इमेज से XMP डेटा पढ़ने की सुविधा जोड़ी गई है.
  • AVIF इमेज से Exif और XMP पढ़ने की सुविधा जोड़ी गई है.

एपीआई में हुए बदलाव

  • इससे पता चलता है कि setGpsInfo के लिए location पैरामीटर @Nullable है और null को पास करने से कोई कार्रवाई नहीं होगी. (If924c, b/236484611)

गड़बड़ियां ठीक की गईं

  • अमान्य IFD ऑफ़सेट (b/264729367) का पता चलने के बाद भी पार्सिंग जारी रखें.
  • WebP इमेज को हैंडल करने की सुविधा जोड़ी गई है. इन इमेज में Exif डेटा से पहले, JPEG APP1 मार्कर मौजूद होता है (b/281638358).
  • पक्का करें कि अलग XMP सेगमेंट वाले JPEG में किए गए XMP बदलावों को saveAttributes(), उसी अलग XMP सेगमेंट में सेव करे. इसके बजाय, उन्हें TIFF/Exif टैग 700 में न लिखे. XMP स्पेसिफ़िकेशन में इसकी अनुमति नहीं है. साथ ही, कई टूल में ये बदलाव नहीं दिखेंगे.
  • सेव करते समय, किसी दूसरे सेगमेंट से XMP डेटा को TIFF प्रीव्यू डायरेक्ट्री में डुप्लीकेट होने से रोकें (b/309843390).
  • डबल से रैशनल कन्वर्ज़न की सटीक जानकारी को बेहतर बनाया गया है. (b/312680558).
  • setAttribute के लिए, x/y फ़ॉर्मैट वाले 'लेगसी' रैशनल टैग स्वीकार किए जाते हैं. getAttribute से वापस आने पर, ये टैग अपने-आप दशमलव में बदल जाते हैं (b/312680558).
  • पक्का करें कि जिस JPEG इमेज में पहले से XMP डेटा मौजूद नहीं है उसमें जोड़ा गया XMP डेटा, XMP स्पेसिफ़िकेशन के मुताबिक अलग सेगमेंट में लिखा गया हो. ExifInterface के दस्तावेज़ में बताया गया है कि JPEG इमेज में Exif 700 टैग में मौजूद XMP डेटा को प्राथमिकता दी जाती है. इससे स्पेसिफ़िकेशन का उल्लंघन होता है. इसलिए, मौजूदा XMP डेटा वाली इमेज को पढ़ते/लिखते समय, इस व्यवहार को बनाए रखा जाता है.
  • WebP इमेज लिखते समय, 8191 पिक्सल से ज़्यादा ऊंचाई या चौड़ाई वाली इमेज के खराब आउटपुट की समस्या ठीक की गई (b/342697059).
  • यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए: -Xjspecify-annotations=strict (यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है). (I5cd0f, b/326456246)
  • नए प्लैटफ़ॉर्म एपीआई को ऐक्सेस करने के लिए, मैन्युअल तरीके से आउटलाइन बनाने की सुविधा हटा दी गई है. ऐसा इसलिए, क्योंकि AGP 7.3 या इसके बाद के वर्शन (जैसे, R8 का वर्शन 3.3) के साथ R8 का इस्तेमाल करने पर, एपीआई मॉडलिंग के ज़रिए यह काम अपने-आप हो जाता है. साथ ही, AGP 8.1 या इसके बाद के वर्शन (जैसे, D8 का वर्शन 8.1) का इस्तेमाल करने पर, सभी बिल्ड के लिए यह काम अपने-आप हो जाता है. AGP का इस्तेमाल न करने वाले क्लाइंट को D8 के 8.1 या उसके बाद के वर्शन पर अपडेट करने का सुझाव दिया जाता है. ज़्यादा जानकारी के लिए यह लेख देखें. (If6b4c, b/345472586)

वर्शन 1.3.7

वर्शन 1.3.7

13 दिसंबर, 2023

androidx.exifinterface:exifinterface:1.3.7 रिलीज़ हो गया है. वर्शन 1.3.7 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • बहुत बड़े JPEG APP1 सेगमेंट को लिखते समय, ExifInterface.saveAttributes() से एक अपवाद थ्रो करें. इससे पहले, हम गलत, छोटा किया गया, और गलत लंबाई वाला APP1 सेगमेंट लिखते थे:(b/263747161)). अमान्य IFD ऑफ़सेट मिलने के बाद भी पार्सिंग जारी रखें. इससे पहले, पार्सिंग तुरंत रुक जाती थी. इससे गलत वैल्यू मिल सकती थीं: (b/264729367)).

वर्शन 1.3.6

वर्शन 1.3.6

8 फ़रवरी, 2023

androidx.exifinterface:exifinterface:1.3.6 रिलीज़ हो गया है. वर्शन 1.3.6 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • WebP VP8L चंक से ऐल्फ़ा बिट पढ़ने की समस्या ठीक की गई (b/255405635).

वर्शन 1.3.5

वर्शन 1.3.5

24 अक्टूबर, 2022

androidx.exifinterface:exifinterface:1.3.5 रिलीज़ हो गया है. वर्शन 1.3.5 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • saveAttributes() से अमान्य WebP फ़ाइलें जनरेट होने की दो समस्याओं को ठीक किया गया.

वर्शन 1.3.4

वर्शन 1.3.4

5 अक्टूबर, 2022

androidx.exifinterface:exifinterface:1.3.4 रिलीज़ हो गया है. वर्शन 1.3.4 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • DNG फ़ाइलों में एट्रिब्यूट सेव करने की सुविधा हटा दी गई है. 1.3.3 वर्शन में जोड़ी गई सुविधा पूरी नहीं थी और इससे फ़ाइलें करप्ट हो जाती थीं.

वर्शन 1.3.3

वर्शन 1.3.3

4 अगस्त, 2021

androidx.exifinterface:exifinterface:1.3.3 रिलीज़ हो गया है. वर्शन 1.3.3 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उप-अनुभाग से जुड़े टैग पार्स करने की समस्या ठीक की गई. (aosp/1508143)
  • setDataSource को कॉल करते समय, RuntimeException को रोकता है. (c8e66e9)
  • skipBytes को हमेशा के लिए लूप होने से रोकता है. (fdbe88b)
  • MediaMetadataRetriever से RuntimeException को पकड़ें. (389b21a)
  • DNG फ़ाइलों के लिए एट्रिब्यूट सेव करने की सुविधा जोड़ी गई (3017dbc)
  • थंबनेल वाले टैग की जगह, थंबनेल वाले टैग का इस्तेमाल करें. (e1b916d)

वर्शन 1.3.2

वर्शन 1.3.2

2 दिसंबर, 2020

androidx.exifinterface:exifinterface:1.3.2 रिलीज़ हो गया है. वर्शन 1.3.2 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • यह विकल्प GPS_LATITUDE और GPS_LONGITUDE के लिए, SRATIONAL को अनुमति देता है.
  • DateTime टैग के सेकंडरी फ़ॉर्मैट (2020-01-01 00:00:00) को पढ़ने/लिखने की सुविधा जोड़ी गई है.
  • saveAttribute() को कॉल करते समय, ओरिजनल फ़ाइल को कुछ समय के लिए हटाने से रोका गया.

वर्शन 1.3.1

वर्शन 1.3.1

14 अक्टूबर, 2020

androidx.exifinterface:exifinterface:1.3.1 रिलीज़ हो गया है. वर्शन 1.3.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • MediaProvider में इमेज डेटा को बनाए रखने के लिए, saveAttributes को लागू करने से जुड़ी समस्या को ठीक करें

वर्शन 1.3.0

वर्शन 1.3.0

16 सितंबर, 2020

androidx.exifinterface:exifinterface:1.3.0 रिलीज़ हो गया है. वर्शन 1.3.0 में ये बदलाव शामिल हैं.

1.2.0 के बाद के मुख्य बदलाव

  • WebP EXIF लिखने की सुविधा को बेहतर बनाया गया है. अब इसमें ऐसी फ़ाइलें भी शामिल की जा सकती हैं जिनमें सिर्फ़ VP8 या VP8L चंक होते हैं.
  • ज़रूरत से ज़्यादा बफ़रिंग की समस्या को ठीक किया गया है. इसकी वजह से, बड़ी इमेज फ़ाइलों के लिए OutOfMemory अपवाद हो रहे थे.
  • INVALID_DATE_TIME को हटा दिया गया है. इसके बजाय, अमान्य तारीख और समय की वैल्यू दिखाने के लिए NULL का इस्तेमाल करें.
  • अमान्य वैल्यू के लिए, getGpsDateTime को -1 के बजाय Long.MIN_VALUE दिखाने के लिए अपडेट किया गया.

वर्शन 1.3.0-rc01

2 सितंबर, 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 को 1.3.0-beta01 के बाद से बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.3.0-rc01 में ये बदलाव शामिल हैं.

वर्शन 1.3.0-beta01

19 अगस्त, 2020

androidx.exifinterface:exifinterface:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • WebP EXIF लिखने की सुविधा को बेहतर बनाया गया है. अब इसमें ऐसी फ़ाइलें भी शामिल की जा सकती हैं जिनमें सिर्फ़ VP8 या VP8L चंक होते हैं.

एपीआई में हुए बदलाव

  • INVALID_DATE_TIME को हटा दिया गया है. इसके बजाय, अमान्य तारीख और समय की वैल्यू दिखाने के लिए NULL का इस्तेमाल करें.

गड़बड़ियां ठीक की गईं

  • getGpsDateTime को -1 के बजाय Long.MIN_VALUE के तौर पर दिखाया गया है, क्योंकि -1 एक मान्य वैल्यू है
  • DateTime से जुड़े गेटर में, तारीख की स्ट्रिंग की ऑफ़सेट वैल्यू (+/-) को ध्यान में रखा गया है.
  • ज़रूरत से ज़्यादा बफ़रिंग की समस्या को ठीक किया गया है. इसकी वजह से, बड़ी इमेज फ़ाइलों के लिए OutOfMemory अपवाद हो रहे थे.
  • डिफ़ॉल्ट स्थान-भाषा को अमेरिका पर सेट करें
  • अस्थायी फ़ाइलें बनाने के लिए, “.tmp” जोड़ने की सुविधा को प्रीफ़िक्स जोड़ने की सुविधा से बदल दिया गया है.

वर्शन 1.3.0-alpha01

19 फ़रवरी, 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • एक नया तरीका जोड़ा गया है: ExifInterface.getGpsDateTime()

वर्शन 1.2.0

वर्शन 1.2.0

1 अप्रैल, 2020

androidx.exifinterface:exifinterface:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये बदलाव शामिल हैं.

1.1.0 के बाद के मुख्य बदलाव

  • PNG फ़ाइलों में EXIF जोड़ने की सुविधा जोड़ी गई
  • सिर्फ़ EXIF डेटा स्ट्रीम और WebP फ़ाइलों के लिए सहायता जोड़ी गई
  • यह देखने के लिए कि बताया गया माइम टाइप काम करता है या नहीं, एक एपीआई जोड़ा गया है
  • ऑफ़सेट समय के लिए ज़्यादा टैग जोड़े गए: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED, और TAG_OFFSET_TIME_ORIGINAL

वर्शन 1.2.0-rc01

19 फ़रवरी, 2020

androidx.exifinterface:exifinterface:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • JPEG फ़ाइलों को गलत तरीके से सेव करने की समस्या को ठीक किया गया है. ऐसा तब होता था, जब JPEG में XMP डेटा होता था

वर्शन 1.2.0-beta01

18 दिसंबर, 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • PNG फ़ाइलों में EXIF जोड़ने की सुविधा जोड़ी गई
  • WebP फ़ाइलों से EXIF डेटा को पढ़ने और लिखने की सुविधा जोड़ी गई
  • सिर्फ़ EXIF डेटा वाली स्ट्रीम के लिए सहायता जोड़ी गई

एपीआई में बदलाव

  • यह देखने के लिए एपीआई जोड़ा गया है कि बताया गया माइम टाइप काम करता है या नहीं
  • OffsetTime* टैग को पढ़ने और लिखने की सुविधा जोड़ी गई

गड़बड़ियां ठीक की गईं

  • getAttributeRange() के लिए गलत ऑफ़सेट दिखाए जाने की समस्या को ठीक किया गया है

वर्शन 1.1.0

वर्शन 1.1.0

20 नवंबर, 2019

androidx.exifinterface:exifinterface:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.

1.0.0 के बाद हुए अहम बदलाव

  • HEIF फ़ॉर्मैट और ज़्यादा XMP टैग के लिए सहायता
  • File या FileDescriptor से ExifInterface ऑब्जेक्ट बनाने की सुविधा जोड़ी गई
  • एट्रिब्यूट पाने के लिए और तरीके जोड़े गए: hasAttribute, getAttributeBytes, और getAttributesRange

वर्शन 1.1.0-rc01

9 अक्टूबर, 2019

androidx.exifinterface:exifinterface:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • loadAttributes पर ArrayIndexOutOfBoundsException को रोकने के लिए, फ़ॉर्मैट का नाम (आईएफ़डी) जोड़ा गया
  • saveAttributes को कॉल करते समय कोई अपवाद होने पर, ओरिजनल फ़ाइल को मिटाने से रोका गया
  • किसी फ़ाइल को फिर से लिखने के बाद saveAttributes() को कॉल करने पर, अपवाद से जुड़ी समस्या को ठीक किया गया है.

वर्शन 1.1.0-beta01

2 जुलाई, 2019

androidx.exifinterface:exifinterface:1.1.0-beta01 रिलीज़ हो गया है. इस वर्शन में शामिल बदलाव यहां देखे जा सकते हैं.

नई सुविधाएं

  • NullPointerException तब थ्रो करता है, जब null को @NonNull आर्ग्युमेंट के लिए सेट किया जाता है
  • XMP टैग के लिए सहायता

एपीआई में बदलाव

  • एट्रिब्यूट की जानकारी पाने के लिए, ज़्यादा तरीके जोड़े गए
  • hasAttribute, getAttributeBytes, और getAttributesRange

गड़बड़ियां ठीक की गईं

  • फ़ाइल डिस्क्रिप्टर की मेमोरी लीक होने से रोकना है

वर्शन 1.1.0-alpha01

13 मार्च, 2019

androidx.exifinterface:exifinterface:1.1.0-alpha01 रिलीज़ हो गया है. इस वर्शन में शामिल सभी बदलाव की पूरी सूची यहां देखी जा सकती है.

नई सुविधाएं

  • HEIF फ़ॉर्मैट के साथ काम करता है

एपीआई में बदलाव

  • ExifInterface के ज़्यादा कंस्ट्रक्टर जोड़े गए
  • टाइप की गई गलतियां ठीक की गईं: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

गड़बड़ियां ठीक की गईं

  • थंबनेल इमेज के लिए, ओवरफ़्लो की समस्या की जांच करने की सुविधा ठीक की गई (aosp/748608)