Exifinterface
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 3 ديسمبر 2025 | 1.4.2 | - | - | - |
تحديد الاعتماديات
لإضافة اعتمادية على Exifinterface، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
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
3 ديسمبر 2025
تم طرح androidx.exifinterface:exifinterface:1.4.2. يتضمّن الإصدار 1.4.2 هذه التعديلات.
إصلاح الأخطاء
- إتاحة تحليل ملفات JPEG مع بايتات 0xFF إضافية (مسموح بها) قبل أي علامة
الإصدار 1.4.1
23 أبريل 2025
تم طرح androidx.exifinterface:exifinterface:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يتسبّب في ظهور استثناء عند تمرير قيمة فارغة إلى
setAttributeفيTAG_XMP.
الإصدار 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 بدون أي تغييرات منذ الإصدار التجريبي 01. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الإصدار 1.4.0-beta01
15 يناير 2025
تم طرح androidx.exifinterface:exifinterface:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تعديل طريقة التعامل مع HEIC XMP لتفضيل بيانات XMP من جزء منفصل في الملف، بدلاً من العلامة 700 في بيانات Exif
إصلاح الأخطاء
- إصلاح طريقة
ExifInterface.getThumbnail*()لتعمل بشكل صحيح بعد إجراء طلب إلىsaveAttributes()(في السابق، كانت الطلبات تنجح، ولكن كانت النتيجة غير صحيحة أو غير محدّدة) - تم إصلاح معالجة PNG XMP لقراءة وكتابة جزء 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)
- تحسين دقة عمليات التحويل من النوع double إلى النوع rational (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(هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مترجم Kotlin البرمجي). (I5cd0f، b/326456246) - تمت إزالة التحديد اليدوي لنطاق الوصول إلى واجهات برمجة التطبيقات الجديدة للمنصة، لأنّ ذلك يحدث تلقائيًا من خلال تصميم واجهة برمجة التطبيقات عند استخدام R8 مع الإصدار 7.3 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون 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لعرض قيمة غير صالحة للتاريخ والوقت.
إصلاح الأخطاء
- تم تغيير قيمة الإرجاع من
-1إلىLong.MIN_VALUEلأنّ-1قيمة صالحةgetGpsDateTime - تم تعديل دوال جلب البيانات المرتبطة بـ 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)