Exifinterface

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

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

لإضافة تبعية لواجهة 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-beta01

15 كانون الثاني (يناير) 2025

تم تحرير androidx.exifinterface:exifinterface:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 عمليات الربط هذه.

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

  • تعديل طريقة معالجة XMP في ملفات HEIC لمنح الأولوية لبيانات XMP من جزء منفصل في الملف بدلاً من العلامة 700 في بيانات Exif

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

  • إصلاح طريقة ExifInterface.getThumbnail*() للعمل بشكل صحيح بعد طلب saveAttributes() (في السابق، كانت المكالمات تنجح، ولكن كانت النتيجة غير صحيحة/غير محدّدة)
  • إصلاح معالجة XMP في ملفات PNG لقراءة وكتابة مجموعة iTXt XMP المنفصلة بدلاً من العلامة 700 داخل مجموعة eXIf
  • إصلاح مشكلة تلف الصور WebP عند معالجة ملفات الصور التي تتضمّن بيانات غير WebP في نهايتها (b/385766064).

الإصدار 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 offset (في السابق، كان يتم إيقاف التحليل على الفور، ما قد يؤدي إلى عرض قيم غير صحيحة: (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*

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

  • تم إصلاح مشكلة عرض قيم غير صحيحة لمعلمة 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)