Exifinterface

قراءة علامات EXIF لملفات الصور وكتابتها
آخر تعديل الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
13 تشرين الثاني (نوفمبر) 2024 1.3.7 - - 1.4.0-alpha01

الإعلان عن التبعيات

لإضافة تبعية لواجهة Exif، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle ل تطبيقك أو وحدتك:

Groovy

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 على عمليات الربط هذه.

الميزات الجديدة

  • إتاحة قراءة بيانات XMP من صور HEIF
  • إتاحة قراءة Exif وXMP من صور AVIF

تغييرات واجهة برمجة التطبيقات

  • الإشارة إلى أنّ المَعلمة location لـ setGpsInfo هي @Nullable وأنّ تمرير null سيؤدي إلى عدم تنفيذ أيّ إجراء (If924c، b/236484611)

إصلاح الأخطاء

  • مواصلة التحليل بعد العثور على قيمة غير صالحة لموضع IFD (b/264729367)
  • معالجة صور WebP التي تحتوي بشكل غير صحيح على علامة JPEG APP1 قبل بيانات Exif (b/281638358)
  • تأكَّد من أنّ التغييرات في XMP في ملفات JPEG التي تحتوي على قسم XMP منفصل يتم تخزينها في قسم XMP المنفصل نفسه من خلال saveAttributes()، بدلاً من كتابتها في علامة TIFF/Exif 700 التي لا تتوافق مع مواصفات XMP ولن تعثر عليها العديد من الأدوات.
  • تجنَّب تكرار بيانات XMP من مقطع منفصل في دليل معاينة TIFF عند الحفظ (b/309843390).
  • تحسين دقة عمليات التحويل من الأعداد المزدوجة إلى الأعداد الكسورية (b/312680558)
  • قبول التنسيق الصحيح (x/y) إلى setAttribute للعلامات الصحيحة "القديمة" التي يتم تحويلها تلقائيًا إلى عشرية عند عرضها من getAttribute (b/312680558).
  • تأكَّد من أنّ بيانات XMP التي تمت إضافتها إلى صورة JPEG لا تحتوي على XMP يتم كتابتها في قسم منفصل، كما هو محدّد في مواصفات XMP. يُوثّق أنّ ExifInterface يفضّل استخدام XMP في علامة Exif 700 في صور JPEG (بما يخالف المواصفات)، لذا يتم الحفاظ على هذا السلوك عند قراءة/كتابة الصور التي تحتوي على بيانات XMP حالية.
  • إصلاح الإخراج الذي يتضمّن أخطاء عند كتابة صور WebP بارتفاع أو عرض أكبر من 8191 بكسل (b/342697059)
  • تستخدم هذه المكتبة الآن تعليقات توضيحية حول عدم تحديد قيمة لسمة JSpecify، وهي عبارة عن استخدام للنوع. على مطوّري لغة Kotlin استخدام مَعلمات المُجمِّع التالية لفرض الاستخدام الصحيح: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f، b/326456246)
  • تمت إزالة التحديد اليدوي للوصول إلى واجهات برمجة تطبيقات المنصة الجديدة لأنّ ذلك يحدث تلقائيًا من خلال وضع نماذج لواجهات برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) ولجميع الإصدارات عند استخدام AGP 8.1 أو إصدار أحدث (مثل D8 الإصدار 8.1). ننصح العملاء الذين لا يستخدمون AGP بالترقية إلى الإصدار 8.1 من D8 أو إصدار أحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (If6b4c، b/345472586)

الإصدار 1.3.7

الإصدار 1.3.7

13 كانون الأول (ديسمبر) 2023

تم إصدار androidx.exifinterface:exifinterface:1.3.7. يحتوي الإصدار 1.3.7 على هذه المراجعات.

إصلاح الأخطاء

  • يجب طرح استثناء من ExifInterface.saveAttributes() عند محاولة كتابة جزء JPEG APP1 كبير جدًا (في السابق، كنا نكتب جزء 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)
  • منع حدوث RuntimeException عند استدعاء setDataSource (c8e66e9)
  • منع تكرار skipBytes بشكلٍ لا نهائي (fdbe88b)
  • يمكنك رصد RuntimeException من MediaMetadataRetriever. (389b21a)
  • إتاحة حفظ السمات لملفات DNG (3017dbc)
  • استبدِل علامات غير الصور المصغّرة بعلامات الصور المصغّرة. (e1b916d)

الإصدار 1.3.2

الإصدار 1.3.2

2 كانون الأول (ديسمبر) 2020

تم إصدار androidx.exifinterface:exifinterface:1.3.2. يحتوي الإصدار 1.3.2 على عمليات الربط هذه.

إصلاح الأخطاء

  • يسمح هذا الخيار بمسار SRATIONAL في GPS_LATITUDE وGPS_LONGITUDE.
  • تمت إضافة إمكانية قراءة/كتابة تنسيق ثانوي (‎2020-01-01 00:00:00) لعلامة DateTime.
  • تم منع الإزالة المؤقتة للملف الأصلي أثناء استدعاء saveAttribute().

الإصدار 1.3.1

الإصدار 1.3.1

14 تشرين الأول (أكتوبر) 2020

تم إصدار androidx.exifinterface:exifinterface:1.3.1. يحتوي الإصدار 1.3.1 على هذه المراجعات.

إصلاح الأخطاء

  • إصلاح تنفيذ saveAttributes للاحتفاظ ببيانات الصورة في MediaProvider

الإصدار 1.3.0

الإصدار 1.3.0

16 أيلول (سبتمبر) 2020

تم إصدار androidx.exifinterface:exifinterface:1.3.0. يحتوي الإصدار 1.3.0 على هذه المراجعات.

التغييرات الرئيسية منذ الإصدار 1.2.0

  • إتاحة كتابة ملف EXIF بتنسيق WebP الموسّع ليشمل الملفات التي تحتوي على أجزاء VP8 أو VP8L فقط
  • تمت إزالة التخزين المؤقت غير الضروري الذي كان يتسبب في حدوث استثناءات OutOfMemory لملفات الصور الكبيرة.
  • تمت إزالة INVALID_DATE_TIME. بدلاً من ذلك، استخدِم NULL لعرض قيم غير صالحة للتاريخ والوقت.
  • تمّ جعل getGpsDateTime تعرِض Long.MIN_VALUE بدلاً من -1 لقيمة غير صالحة.

الإصدار 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 على هذه المراجعات.

الميزات الجديدة

  • إتاحة كتابة ملف EXIF بتنسيق WebP الموسّع ليشمل الملفات التي تحتوي على أجزاء VP8 أو VP8L فقط

تغييرات واجهة برمجة التطبيقات

  • تمت إزالة INVALID_DATE_TIME. بدلاً من ذلك، استخدِم NULL لعرض قيمة غير صالحة للتاريخ والوقت.

إصلاح الأخطاء

  • تمّ جعل getGpsDateTime يعرض Long.MIN_VALUE بدلاً من -1 لأنّ -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

  • إتاحة إضافة EXIF إلى ملفات PNG
  • إتاحة استخدام ملفات WebP وبث بيانات EXIF فقط
  • تمت إضافة واجهة برمجة تطبيقات للتحقّق مما إذا كان نوع MIME المحدّد متوافقًا.
  • تمت إضافة المزيد من العلامات لوقت التقديم أو التأخير: 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 على هذه المراجعات.

الميزات الجديدة

  • إتاحة إضافة EXIF إلى ملفات PNG
  • تمت إضافة إمكانية قراءة وكتابة بيانات EXIF من ملفات WebP.
  • إتاحة بث بيانات EXIF فقط

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهة برمجة تطبيقات للتحقّق مما إذا كان نوع MIME المحدّد متوافقًا.
  • إتاحة علامتَي OffsetTime* للقراءة والكتابة

إصلاح الأخطاء

  • تم إصلاح مشكلة كانت تؤدي إلى عرض Offsets غير صحيحة لـ getAttributeRange().

الإصدار 1.1.0

الإصدار 1.1.0

20 تشرين الثاني (نوفمبر) 2019

تم إصدار androidx.exifinterface:exifinterface:1.1.0. يحتوي الإصدار 1.1.0 على عمليات الربط هذه.

التغييرات المهمة منذ الإصدار 1.0.0

  • إتاحة تنسيق HEIF والمزيد من علامات XMP
  • تمت إضافة إمكانية إنشاء عنصر ExifInterface من File أو FileDescriptor
  • تمت إضافة المزيد من الطرق للحصول على السمات: hasAttribute وgetAttributeBytes وgetAttributesRange.

الإصدار 1.1.0-rc01

9 تشرين الأول (أكتوبر) 2019

تم إصدار androidx.exifinterface:exifinterface:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على هذه المراجعات.

إصلاح الأخطاء

  • تمت إضافة اسم تنسيق غير متوفّر (IFD) لمنع حدوث ArrayIndexOutOfBoundsException في loadAttributes
  • منع حذف الملف الأصلي عند حدوث استثناء أثناء استدعاء 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)