Exifinterface

קריאה וכתיבה של תגי EXIF בקובץ תמונה.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫3 בדצמבר 2025 1.4.2 - - -

הצהרה על יחסי תלות

כדי להוסיף תלות ב-Exifinterface, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

מגניב

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

Kotlin

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

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.

יצירת בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא הכלי למעקב אחר בעיות.

גרסה 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 מכילה את הקומטים האלה.

תיקוני באגים

  • תוקן באג שבו העברת ערך null אל 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 יוצאת ללא שינויים מאז גרסת הבטא beta01. גרסה 1.4.0-rc01 מכילה את הקומטים האלה.

גרסה ‎1.4.0-beta01

‫15 בינואר 2025

androidx.exifinterface:exifinterface:1.4.0-beta01 משוחרר. גרסה 1.4.0-beta01 מכילה את ההתחייבויות האלה.

שינויים ב-API

  • עדכון הטיפול ב-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.

שינויים ב-API

  • מציינים שהפרמטר 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 עם גובה או רוחב גדולים מ-8,191 פיקסלים (b/342697059).
  • הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוג. מפתחים ב-Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict (זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). ‫(I5cd0f, ‏ b/326456246)
  • הסרנו את האפשרות ליצור באופן ידני תרשים של הגישה לממשקי API חדשים של הפלטפורמה, כי זה קורה באופן אוטומטי באמצעות מידול API כשמשתמשים ב-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 מכילה את הקומיטים האלה.

תיקוני באגים

  • תיקון תגים שקשורים ל-subsec. (aosp/1508143)
  • מניעת RuntimeException כשמתקשרים אל setDataSource. (c8e66e9)
  • למנוע מצב שבו skipBytes יפעל בלולאה אינסופית. (fdbe88b)
  • ‫Catch RuntimeException from 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.

שינויים ב-API

  • בוצעה הסרה של INVALID_DATE_TIME. במקום זאת, משתמשים ב-NULL כדי להחזיר ערך לא חוקי של תאריך ושעה.

תיקוני באגים

  • הפונקציה getGpsDateTime מחזירה Long.MIN_VALUE במקום -1 כי -1 הוא ערך תקין
  • שינינו את ה-getters שקשורים ל-DateTime כך שיביאו בחשבון את ערך ההיסט (+/-) של מחרוזת התאריך.
  • הוסר חיץ מיותר שגרם לחריגות OutOfMemory בקבצי תמונות גדולים.
  • הגדרת ברירת המחדל של האזור לארה"ב
  • במקום להוסיף את הסיומת ‎.tmp ליצירת קבצים זמניים, נוספה קידומת.

גרסה ‎1.3.0-alpha01

‫19 בפברואר 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 משוחרר. גרסה ‎1.3.0-alpha01 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספת שיטה חדשה: 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 בלבד
  • הוספנו API לבדיקה אם סוג ה-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 נשמרו בצורה שגויה אם קובץ ה-JPEG הכיל נתוני XMP

גרסה ‎1.2.0-beta01

‫18 בדצמבר 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.

תכונות חדשות

  • נוספה תמיכה בהוספת EXIF לקובצי PNG
  • הוספנו תמיכה בקריאה ובכתיבה של EXIF מקובצי WebP
  • הוספנו תמיכה במקור נתונים של נתוני EXIF בלבד

שינויים ב-API

  • הוספנו API לבדיקה אם סוג ה-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

שינויים ב-API

  • נוספו שיטות נוספות לקבלת מידע על מאפיינים
  • hasAttribute, getAttributeBytes וגם getAttributesRange

תיקוני באגים

  • מניעת דליפת זיכרון של מתאר קובץ

גרסה ‎1.1.0-alpha01

‫13 במרץ 2019

androidx.exifinterface:exifinterface:1.1.0-alpha01 משוחרר. כאן אפשר לראות את הרשימה המלאה של הקומיטים שכלולים בגרסה הזו.

תכונות חדשות

  • תמיכה בפורמט HEIF

שינויים ב-API

  • נוספו עוד יצרנים של ExifInterface
  • תיקון שגיאת הקלדה: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

תיקוני באגים

  • תוקן הבאג שקשור לבדיקה של אפשרות לגלישה בתמונה הממוזערת (aosp/748608)