رابط Exifin

خواندن و نوشتن تگ‌های EXIF ​​فایل‌های تصویری
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۳ دسامبر ۲۰۲۵ ۱.۴.۲ - - -

اعلام وابستگی‌ها

برای افزودن یک وابستگی به Exifinterface، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

شیار

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

کاتلین

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

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه ۱.۴

نسخه ۱.۴.۲

۳ دسامبر ۲۰۲۵

androidx.exifinterface:exifinterface:1.4.2 منتشر شد. نسخه ۱.۴.۲ شامل این کامیت‌ها است.

رفع اشکالات

  • پشتیبانی از تجزیه JPEG با بایت‌های اضافی (مجاز) 0xFF قبل از هر نشانگر.

نسخه ۱.۴.۱

۲۳ آوریل ۲۰۲۵

androidx.exifinterface:exifinterface:1.4.1 منتشر شد. نسخه ۱.۴.۱ شامل این کامیت‌ها است.

رفع اشکالات

  • اشکالی را برطرف کنید که در آن ارسال null به setAttribute برای TAG_XMP باعث ایجاد استثنا می‌شد.

نسخه ۱.۴.۰

۲۶ فوریه ۲۰۲۵

androidx.exifinterface:exifinterface:1.4.0 منتشر شد. نسخه ۱.۴.۰ شامل این کامیت‌ها است.

نسخه ۱.۴.۰-rc01

۲۹ ژانویه ۲۰۲۵

androidx.exifinterface:exifinterface:1.4.0-rc01 بدون هیچ تغییری از زمان beta01 منتشر شده است. نسخه 1.4.0-rc01 شامل این کامیت‌ها است.

نسخه ۱.۴.۰-بتا۰۱

۱۵ ژانویه ۲۰۲۵

androidx.exifinterface:exifinterface:1.4.0-beta01 منتشر شد. نسخه 1.4.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • مدیریت HEIC XMP را به‌روزرسانی کنید تا داده‌های XMP از یک بخش جداگانه در فایل، به جای برچسب ۷۰۰ در داده‌های Exif، ترجیح داده شوند.

رفع اشکالات

  • رفع مشکل کارکرد صحیح متد ExifInterface.getThumbnail*() پس از فراخوانی saveAttributes() (قبلاً فراخوانی‌ها موفقیت‌آمیز بودند، اما نتیجه نادرست/تعریف نشده بود)
  • رفع مشکل مدیریت PNG XMP برای خواندن و نوشتن بخش جداگانه iTXt XMP به جای تگ ۷۰۰ در داخل بخش eXIf.
  • رفع مشکل خرابی تصویر WebP هنگام مدیریت فایل‌های تصویری با داده‌های غیر WebP در انتهای آنها. ( b/385766064 ).

نسخه ۱.۴.۰-آلفا۰۱

۱۳ نوامبر ۲۰۲۴

androidx.exifinterface:exifinterface:1.4.0-alpha01 منتشر شد. نسخه 1.4.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی برای خواندن داده‌های XMP از تصاویر HEIF اضافه شد.
  • پشتیبانی برای خواندن Exif و XMP از تصاویر AVIF اضافه شد.

تغییرات API

  • مشخص کنید که پارامتر location برای setGpsInfo @Nullable است و ارسال null منجر به No-Op می‌شود. ( If924c , b/236484611 )

رفع اشکالات

  • پس از مواجهه با یک آفست IFD نامعتبر ( b/264729367 )، تجزیه را ادامه دهید.
  • تصاویر WebP که به اشتباه حاوی نشانگر JPEG APP1 قبل از داده‌های Exif خود هستند ( b/281638358 ) را مدیریت کنید.
  • اطمینان حاصل کنید که تغییرات XMP در JPEG هایی که دارای یک بخش XMP جداگانه هستند، به جای اینکه در TIFF/Exif tag 700 نوشته شوند، توسط saveAttributes() در همان بخش XMP جداگانه ذخیره شوند، زیرا این تغییرات توسط مشخصات XMP پشتیبانی نمی‌شوند و بسیاری از ابزارها آنها را پیدا نمی‌کنند.
  • هنگام ذخیره، از کپی کردن داده‌های XMP از یک بخش جداگانه در فهرست پیش‌نمایش TIFF خودداری کنید ( b/309843390 ).
  • بهبود دقت تبدیل‌های double به rational. ( b/312680558 ).
  • قالب منطقی (x/y) را برای setAttribute برای تگ‌های منطقی «legacy» که هنگام برگردانده شدن از getAttribute ( b/312680558 ) به صورت خودکار به اعشار تبدیل می‌شوند، می‌پذیرد.
  • اطمینان حاصل کنید که داده‌های XMP اضافه شده به یک تصویر JPEG که از قبل حاوی XMP نیست، در یک بخش جداگانه، همانطور که توسط مشخصات XMP مشخص شده است، نوشته شود. طبق مستندات، ExifInterface در تصاویر JPEG، XMP را در برچسب Exif 700 ترجیح می‌دهد (که مشخصات را نقض می‌کند)، بنابراین این رفتار هنگام خواندن/نوشتن تصاویر با داده‌های XMP موجود حفظ می‌شود.
  • خروجی خراب هنگام نوشتن تصاویر WebP با ارتفاع یا عرض بیشتر از ۸۱۹۱ پیکسل ( b/342697059 ) را برطرف کنید.
  • این کتابخانه اکنون از حاشیه‌نویسی‌های nullness از نوع JSpecify استفاده می‌کند که از نوع type-use هستند. توسعه‌دهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند: -Xjspecify-annotations=strict (این پیش‌فرض است که از نسخه 2.1.0 کامپایلر کاتلین شروع می‌شود). ( I5cd0f ، b/326456246 )
  • حذف دستورالعمل دسترسی به APIهای پلتفرم جدید، زیرا این امر به طور خودکار از طریق مدل‌سازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (مثلاً R8 نسخه 3.3) و برای همه نسخه‌ها هنگام استفاده از AGP 8.1 یا بالاتر (مثلاً D8 نسخه 8.1) اتفاق می‌افتد. به مشتریانی که از AGP استفاده نمی‌کنند، توصیه می‌شود به D8 نسخه 8.1 یا بالاتر به‌روزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( If6b4c ، b/345472586 )

نسخه ۱.۳.۷

نسخه ۱.۳.۷

۱۳ دسامبر ۲۰۲۳

androidx.exifinterface:exifinterface:1.3.7 منتشر شد. نسخه ۱.۳.۷ شامل این کامیت‌ها است.

رفع اشکالات

  • هنگام تلاش برای نوشتن یک قطعه JPEG APP1 که خیلی بزرگ است، از ExifInterface.saveAttributes() یک استثنا ایجاد کنید (قبلاً یک قطعه APP1 نامعتبر با طول نادرست و کوتاه شده می‌نوشتیم:( b/263747161 )). پس از مواجهه با یک آفست IFD نامعتبر، تجزیه را ادامه دهید (قبلاً تجزیه بلافاصله متوقف می‌شد، که می‌توانست منجر به برگرداندن مقادیر نادرست شود: ( b/264729367 )).

نسخه ۱.۳.۶

نسخه ۱.۳.۶

۸ فوریه ۲۰۲۳

androidx.exifinterface:exifinterface:1.3.6 منتشر شد. نسخه ۱.۳.۶ شامل این کامیت‌ها است.

رفع اشکالات

  • مشکل خواندن بیت آلفا از تکه‌های WebP VP8L برطرف شد ( b/255405635 ).

نسخه ۱.۳.۵

نسخه ۱.۳.۵

۲۴ اکتبر ۲۰۲۲

androidx.exifinterface:exifinterface:1.3.5 منتشر شد. نسخه ۱.۳.۵ شامل این کامیت‌ها است.

رفع اشکالات

  • دو مورد از تولید فایل‌های WebP نامعتبر توسط saveAttributes() برطرف شد.

نسخه ۱.۳.۴

نسخه ۱.۳.۴

۵ اکتبر ۲۰۲۲

androidx.exifinterface:exifinterface:1.3.4 منتشر شد. نسخه ۱.۳.۴ شامل این کامیت‌ها است.

رفع اشکالات

  • پشتیبانی از ذخیره ویژگی‌ها در فایل‌های DNG حذف شد. پشتیبانی اضافه شده در نسخه ۱.۳.۳ ناقص بود و فایل‌های خراب تولید می‌کرد.

نسخه ۱.۳.۳

نسخه ۱.۳.۳

۴ آگوست ۲۰۲۱

androidx.exifinterface:exifinterface:1.3.3 منتشر شد. نسخه ۱.۳.۳ شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل تجزیه تگ‌های مربوط به subsec. ( aosp/1508143 )
  • جلوگیری از RuntimeException هنگام فراخوانی setDataSource. ( c8e66e9 )
  • جلوگیری از حلقه زدن بی‌نهایت skipBytes ( fdbe88b )
  • گرفتن RuntimeException از MediaMetadataRetriever. ( 389b21a )
  • اضافه شدن پشتیبانی برای ذخیره ویژگی‌های فایل‌های DNG ( 3017dbc )
  • تگ‌های غیر تصویر بندانگشتی را با تگ‌های تصویر بندانگشتی جایگزین کنید. ( e1b916d )

نسخه ۱.۳.۲

نسخه ۱.۳.۲

۲ دسامبر ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.2 منتشر شد. نسخه ۱.۳.۲ شامل این کامیت‌ها است.

رفع اشکالات

  • برای GPS_LATITUDE و GPS_LONGITUDE SRATIONAL را مجاز می‌داند.
  • پشتیبانی از خواندن/نوشتن فرمت ثانویه (2020-01-01 00:00:00) از برچسب DateTime اضافه شد.
  • از حذف موقت فایل مبدا هنگام فراخوانی تابع saveAttribute() جلوگیری شد.

نسخه ۱.۳.۱

نسخه ۱.۳.۱

۱۴ اکتبر ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.1 منتشر شد. نسخه ۱.۳.۱ شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل پیاده‌سازی saveAttributes برای نگه‌داشتن داده‌های تصویر در MediaProvider

نسخه ۱.۳.۰

نسخه ۱.۳.۰

۱۶ سپتامبر ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.0 منتشر شد. نسخه ۱.۳.۰ شامل این کامیت‌ها است.

تغییرات عمده از زمان ۱.۲.۰

  • پشتیبانی گسترده‌تر از نوشتن فایل‌های EXIF ​​با فرمت WebP برای گنجاندن فایل‌هایی که فقط حاوی تکه‌های VP8 یا VP8L هستند.
  • بافرینگ غیرضروری که باعث ایجاد خطای OutOfMemory برای فایل‌های تصویری بزرگ می‌شد، حذف شد.
  • INVALID_DATE_TIME حذف شد. در عوض NULL برای برگرداندن مقادیر تاریخ و زمان نامعتبر استفاده کنید.
  • تابع getGpsDateTime به جای -1 ، مقدار Long.MIN_VALUE را برای یک مقدار نامعتبر برمی‌گرداند.

نسخه ۱.۳.۰-rc01

۲ سپتامبر ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.0-rc01 بدون هیچ تغییری از زمان انتشار 1.3.0-beta01 منتشر شده است. نسخه ۱.۳.۰-rc01 شامل این کامیت‌ها است.

نسخه ۱.۳.۰-بتا۰۱

۱۹ آگوست ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی گسترده‌تر از نوشتن فایل‌های EXIF ​​با فرمت WebP برای گنجاندن فایل‌هایی که فقط حاوی تکه‌های VP8 یا VP8L هستند.

تغییرات API

  • INVALID_DATE_TIME حذف شد. در عوض NULL برای برگرداندن مقدار تاریخ و زمان نامعتبر استفاده کنید.

رفع اشکالات

  • تابع getGpsDateTime به جای -1 ، مقدار Long.MIN_VALUE را برمی‌گرداند، زیرا -1 یک مقدار معتبر است.
  • تابع‌های دریافت (get) مربوط به DateTime مقدار offset (+/-) رشته‌ی تاریخ را در نظر می‌گیرند.
  • بافرینگ غیرضروری که باعث ایجاد خطای OutOfMemory برای فایل‌های تصویری بزرگ می‌شد، حذف شد.
  • زبان پیش‌فرض را روی ایالات متحده تنظیم کنید
  • اضافه کردن «.tmp» برای ایجاد فایل‌های موقت به جای اضافه کردن پیشوند جایگزین شد.

نسخه ۱.۳.۰-آلفا۰۱

۱۹ فوریه ۲۰۲۰

androidx.exifinterface:exifinterface:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 شامل این کامیت‌ها است.

تغییرات API

  • یک متد جدید اضافه شد: ExifInterface.getGpsDateTime()

نسخه ۱.۲.۰

نسخه ۱.۲.۰

۱ آوریل ۲۰۲۰

androidx.exifinterface:exifinterface:1.2.0 منتشر شد. نسخه ۱.۲.۰ شامل این کامیت‌ها است.

تغییرات عمده از زمان ۱.۱.۰

  • پشتیبانی از افزودن EXIF ​​به فایل‌های PNG اضافه شد
  • پشتیبانی از فایل‌های WebP و داده‌های EXIF ​​فقط برای استریم اضافه شد
  • یک API اضافه شد تا بررسی کند که آیا نوع mime مشخص شده پشتیبانی می‌شود یا خیر.
  • برچسب‌های بیشتری برای زمان افست اضافه شد: TAG_OFFSET_TIME ، TAF_OFFSET_TIME_DIGITIZED و TAG_OFFSET_TIME_ORIGINAL

نسخه ۱.۲.۰-rc01

۱۹ فوریه ۲۰۲۰

androidx.exifinterface:exifinterface:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی که باعث می‌شد فایل‌های JPEG در صورت وجود داده‌های XMP در JPEG، اشتباه ذخیره شوند، برطرف شد.

نسخه ۱.۲.۰-بتا۰۱

۱۸ دسامبر ۲۰۱۹

androidx.exifinterface:exifinterface:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 شامل این کامیت‌ها است .

ویژگی‌های جدید

  • پشتیبانی از افزودن EXIF ​​به فایل‌های PNG اضافه شد
  • پشتیبانی از خواندن و نوشتن EXIF ​​از فایل‌های WebP اضافه شد
  • پشتیبانی از جریان داده EXIF ​​اضافه شد

تغییرات API

  • یک API اضافه شد تا بررسی کند که آیا نوع mime مشخص شده پشتیبانی می‌شود یا خیر.
  • برچسب‌های OffsetTime* خواندن و نوشتن را نمایش داد.

رفع اشکالات

  • مشکلی که باعث می‌شد آفست‌های نادرست برای getAttributeRange() برگردانده شوند، برطرف شد.

نسخه ۱.۱.۰

نسخه ۱.۱.۰

۲۰ نوامبر ۲۰۱۹

androidx.exifinterface:exifinterface:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیت‌ها است .

تغییرات مهم از زمان ۱.۰.۰

  • پشتیبانی از فرمت HEIF و تگ‌های XMP بیشتر
  • پشتیبانی برای ساخت یک شیء ExifInterface از یک File یا FileDescriptor اضافه شد
  • متدهای بیشتری برای دریافت ویژگی اضافه شده است: hasAttribute ، getAttributeBytes و getAttributesRange

نسخه ۱.۱.۰-rc01

۹ اکتبر ۲۰۱۹

androidx.exifinterface:exifinterface:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیت‌ها است .

رفع اشکالات

  • برای جلوگیری از ArrayIndexOutOfBoundsException در loadAttributes یک نام قالب (IFD) اضافه شد که از قلم افتاده بود.
  • از حذف فایل مبدا در صورت بروز استثنا هنگام فراخوانی saveAttributes جلوگیری شد.
  • مشکل استثنا زمانی که پس از رونویسی یک فایل، فراخوانی تابع saveAttributes() رخ می‌داد، برطرف شد.

نسخه ۱.۱.۰-بتا۰۱

۲ ژوئیه ۲۰۱۹

androidx.exifinterface:exifinterface:1.1.0-beta01 منتشر شد. کامیت‌های موجود در این نسخه را می‌توانید اینجا پیدا کنید.

ویژگی‌های جدید

  • وقتی برای آرگومان‌های @NonNull null تنظیم شود، NullPointerException صادر می‌کند
  • پشتیبانی از تگ‌های XMP

تغییرات API

  • اضافه شدن متدهای بیشتر برای دریافت اطلاعات ویژگی‌ها
  • hasAttribute ، getAttributeBytes و getAttributesRange

رفع اشکالات

  • جلوگیری از نشت حافظه توصیفگر فایل

نسخه ۱.۱.۰-آلفا۰۱

۱۳ مارس ۲۰۱۹

androidx.exifinterface:exifinterface:1.1.0-alpha01 منتشر شد. لیست کامل کامیت‌های موجود در این نسخه را می‌توانید اینجا بیابید.

ویژگی‌های جدید

  • پشتیبانی از فرمت HEIF

تغییرات API

  • سازنده‌های بیشتری از ExifInterface اضافه شد
  • اشتباه تایپی برطرف شد: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

رفع اشکالات

  • بررسی سرریز احتمالی برای تصویر بندانگشتی ( aosp/748608 ) برطرف شد.