Exifinterface
آخر تعديل | الإصدار الثابت | إصدار مرشح | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
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)