Exifinterface

इमेज फ़ाइल के EXIF टैग पढ़ना और उनमें बदलाव करना.
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
13 नवंबर, 2024 1.3.7 - - 1.4.0-alpha01

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

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

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

ग्रूवी

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

Kotlin

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

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

सुझाव

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

नई समस्या बनाना

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

वर्शन 1.4

वर्शन 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 डेटा (b/281638358) से पहले, गलत तरीके से JPEG APP1 मार्कर शामिल है.
  • पक्का करें कि अलग-अलग XMP सेगमेंट वाले JPEG में किए गए XMP बदलाव, TIFF/Exif टैग 700 में लिखे जाने के बजाय, saveAttributes() के ज़रिए उसी अलग-अलग XMP सेगमेंट में सेव किए जाएं. TIFF/Exif टैग 700, XMP स्पेसिफ़िकेशन के साथ काम नहीं करता और कई टूल में यह टैग नहीं दिखता.
  • सेव करते समय, TIFF की झलक दिखाने वाली डायरेक्ट्री में किसी अलग सेगमेंट के XMP डेटा को डुप्लीकेट करने से बचें (b/309843390).
  • डबल से रैशनल कन्वर्ज़न को ज़्यादा सटीक बनाएं. (b/312680558).
  • 'लेगसी' रेशियनल टैग के लिए, setAttribute में रेशियनल फ़ॉर्मैट (x/y) स्वीकार करें. ये टैग, getAttribute (b/312680558) से वापस आने पर, अपने-आप दशमलव में बदल जाते हैं.
  • पक्का करें कि XMP स्पेसिफ़िकेशन के मुताबिक, किसी ऐसी JPEG इमेज में जोड़ा गया XMP डेटा, जो पहले से XMP डेटा नहीं है उसे अलग सेगमेंट में लिखा गया हो. ExifInterface को JPEG इमेज में Exif 700 टैग में XMP को प्राथमिकता देने के लिए दस्तावेज़ किया गया है (स्पेसिफ़िकेशन का उल्लंघन), ताकि मौजूदा XMP डेटा वाली इमेज को पढ़ने/लिखने के दौरान यह व्यवहार बरकरार रहे.
  • 8191 पिक्सल से ज़्यादा ऊंचाई या चौड़ाई वाली WebP इमेज लिखते समय, खराब आउटपुट को ठीक करें (b/342697059).
  • यह लाइब्रेरी अब JSpecify nullness एनोटेशन का इस्तेमाल करती है, जो टाइप-इस्तेमाल के लिए हैं. Kotlin डेवलपर को सही तरीके से इस्तेमाल करने के लिए, कंपाइलर के इन आर्ग्युमेंट का इस्तेमाल करना चाहिए: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (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 जोड़ने की सुविधा जोड़ी गई
  • WebP फ़ाइलों और सिर्फ़ EXIF डेटा स्ट्रीम के लिए सहायता जोड़ी गई
  • यह जांचने के लिए एपीआई जोड़ा गया है कि बताए गए माइम टाइप का इस्तेमाल किया जा सकता है या नहीं
  • ऑफ़सेट समय के लिए ज़्यादा टैग जोड़े गए: 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 फ़ाइलों में 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 से बचने के लिए, फ़ॉर्मैट का नाम (IFD) जोड़ा गया
  • saveAttributes को कॉल करते समय कोई अपवाद होने पर, ओरिजनल फ़ाइल को मिटाने से रोका गया
  • किसी फ़ाइल को ओवरराइट करने के बाद, saveAttributes() को कॉल करने पर मिलने वाली अपवाद की समस्या को ठीक किया गया है.

वर्शन 1.1.0-beta01

2 जुलाई, 2019

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

नई सुविधाएं

  • @NonNull आर्ग्युमेंट के लिए null सेट होने पर, NullPointerException दिखाता है
  • 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)