Exifinterface

קריאה וכתיבה של תגי EXIF בקובצי תמונות.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
13 בנובמבר 2024 1.3.7 - - 1.4.0-alpha01

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

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

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

Groovy

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

Kotlin

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

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

משוב

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

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.4

גרסה 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 תוביל לפעולה ללא תוצאה (No-Op). (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 עם גובה או רוחב גדולים מ-8,191 פיקסלים (b/342697059).
  • הספרייה הזו משתמשת עכשיו בהערות של JSpecify לגבי ערכים null, שהן שימוש בסוגים. מפתחי Kotlin צריכים להשתמש בארגומנטים הבאים של המהדר כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f, b/326456246)
  • הסרנו את התיאור הידני של הגישה לממשקי API חדשים של פלטפורמות, כי זה קורה באופן אוטומטי באמצעות בניית מודלים של API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל, R8 גרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP 8.1 ואילך (למשל, D8 גרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • הסרת התמיכה בשמירת מאפיינים בקובצי 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

  • תמיכה מורחבת בכתיבת WebP EXIF, כך שתכלול קבצים שמכילים רק קטעי 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 מכילה את ההצהרות האלה.

תכונות חדשות

  • תמיכה מורחבת בכתיבת WebP EXIF, כך שתכלול קבצים שמכילים רק קטעי VP8 או VP8L.

שינויים ב-API

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

תיקוני באגים

  • שינינו את getGpsDateTime כך שיחזיר את הערך Long.MIN_VALUE במקום -1 כי -1 הוא ערך חוקי
  • שינינו את ה-getters שקשורים ל-DateTime כך שיביאו בחשבון את ערך ההיסט (+/-) של מחרוזת התאריך.
  • הוסרו פעולות אגירת נתונים מיותרות שגרמו לחריגות מסוג OutOfMemory בקבצי תמונות גדולים.
  • הגדרת שפת ברירת המחדל לארה"ב
  • הוספת קידומת במקום הוספת ‎".tmp" ליצירת קובצי 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 לא נשמרו בצורה נכונה אם היו להם נתוני 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 משוחרר. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.

תכונות חדשות

  • גורם להשלכת 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)