Exifinterface

讀取及寫入圖片檔 EXIF 標記。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 11 月 13 日 1.3.7 - - 1.4.0-alpha01

宣告依附元件

如要新增 Exifinterface 的依附元件,您必須將 Google Maven 存放區新增至您的專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

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

Kotlin

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

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 文件

1.4 版

1.4.0-alpha01 版

2024 年 11 月 13 日

發布 androidx.exifinterface:exifinterface:1.4.0-alpha01。1.4.0-alpha01 版包含這些修訂版本

新功能

  • 新增從 HEIF 圖片讀取 XMP 資料的支援功能。
  • 新增從 AVIF 圖片讀取 Exif 和 XMP 的支援功能。

API 變更

  • 指出 setGpsInfolocation 參數為 @Nullable,且傳遞 null 會導致 No-Op。If924cb/236484611

修正錯誤

  • 遇到無效的 IFD 偏移後,繼續剖析 (b/264729367)。
  • 處理 WebP 圖片,這些圖片在 Exif 資料前錯誤地包含 JPEG APP1 標記 (b/281638358)。
  • 請確認 JPEG 中的 XMP 變更 (含有獨立 XMP 片段) 會透過 saveAttributes() 儲存至同一個獨立 XMP 片段,而非寫入 XMP 規格不支援的 TIFF/Exif 標記 700,因為許多工具都找不到該標記。
  • 儲存時,請避免將不同區段的 XMP 資料複製到 TIFF 預覽目錄中 (b/309843390)。
  • 改善雙精度到有理數轉換的精確度。(b/312680558)。
  • 接受「舊版」有理標記的理性格式 (x/y) 至 setAttribute,這些標記會在從 getAttribute 傳回時自動轉換為十進位 (b/312680558)。
  • 請確認新增至 JPEG 圖片的 XMP 資料 (JPEG 圖片不含 XMP 資料) 會依 XMP 規格寫入個別區段。根據文件說明,ExifInterface 會優先使用 JPEG 圖片中 Exif 700 標記中的 XMP (違反規格),因此在讀取/寫入含有現有 XMP 資料的圖片時,會保留這項行為。
  • 修正高度或寬度大於 8191 像素的 WebP 圖片在寫入時產生損毀的輸出內容 (b/342697059)。
  • 這個程式庫現在使用 JSpecify 空值註解,這是類型用法。Kotlin 開發人員應使用下列編譯器引數,強制執行正確的用法:-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0fb/326456246)
  • 移除新平台 API 存取權的手動設定,因為在使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,以及在使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 的所有版本時,系統會透過 API 模擬功能自動執行此操作。建議未使用 AGP 的用戶端更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(If6b4cb/345472586)。

1.3.7 版

1.3.7 版

2023 年 12 月 13 日

發布 androidx.exifinterface:exifinterface:1.3.71.3.7 版包含以下修訂項目。

修正錯誤

  • 嘗試寫入過大的 JPEG APP1 區段時,會從 ExifInterface.saveAttributes() 擲回例外狀況 (先前我們會寫入無效的 APP1 區段,且長度不正確且已截斷:(b/263747161))。遇到無效的 IFD 偏移後繼續剖析 (先前剖析會立即停止,可能導致傳回不正確的值:(b/264729367))。

1.3.6 版本

1.3.6 版本

2023 年 2 月 8 日

發布 androidx.exifinterface:exifinterface:1.3.61.3.6 版包含以下修訂項目。

修正錯誤

  • 修正從 WebP VP8L 區塊讀取 Alpha 位元的問題 (b/255405635)。

1.3.5 版本

1.3.5 版本

2022 年 10 月 24 日

發布 androidx.exifinterface:exifinterface:1.3.51.3.5 版包含以下修訂項目。

修正錯誤

  • 修正 saveAttributes() 產生無效 WebP 檔案的兩個情況。

1.3.4 版本

1.3.4 版本

2022 年 10 月 5 日

發布 androidx.exifinterface:exifinterface:1.3.41.3.4 版包含以下修訂項目。

修正錯誤

  • 停止支援將屬性儲存至 DNG 檔案。1.3.3 中新增的支援不完整,造成檔案毀損。

1.3.3 版本

1.3.3 版本

2021 年 8 月 4 日

發布 androidx.exifinterface:exifinterface:1.3.3查看 1.3.3 版的修訂項

修正錯誤

  • 請剖析子區段相關標記。(aosp/1508143)
  • 在呼叫 setDataSource 時避免 RuntimeException。(c8e66e9)
  • 避免 skipBytes 無限迴圈。(fdbe88b)
  • 從 MediaMetadataRetriever 擷取 RuntimeException。(389b21a)
  • 新增支援 DNG 檔案的屬性儲存功能 (3017dbc)。
  • 使用縮圖標記取代非縮圖標記。(e1b916d)

1.3.2 版

1.3.2 版

2020 年 12 月 2 日

androidx.exifinterface:exifinterface:1.3.2 發布。1.3.2 版包含此連結所列的修訂項目。

修正錯誤

  • 允許 GPS_LATITUDEGPS_LONGITUDE 使用 SRATIONAL
  • 新增讀取/寫入 DateTime 標記次要格式 (2020-01-01 00:00:00) 的支援功能。
  • 已避免在呼叫 saveAttribute() 時暫時移除原始檔案。

1.3.1 版本

1.3.1 版本

2020 年 10 月 14 日

androidx.exifinterface:exifinterface:1.3.1 發布。查看 1.3.1 版的修訂項

修正錯誤

  • 修正 saveAttributes 實作作業,以保留 MediaProvider 中的圖片資料

1.3.0 版本

1.3.0 版本

2020 年 9 月 16 日

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 版本

2020 年 9 月 2 日

androidx.exifinterface:exifinterface:1.3.0-rc011.3.0-beta01起沒有變更。1.3.0-rc01 版包含此連結所列的修訂項目

1.3.0-beta01 版本

2020 年 8 月 19 日

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 是有效值
  • 已使 DateTime 相關的 getter 考慮日期字串的偏移值 (+/-)。
  • 已移除不必要的緩衝設定,該設定導致大型圖片檔發生 OutOfMemory 例外狀況。
  • 將預設語言代碼設為 US
  • 已取代:新增「.tmp」來建立臨時檔案以新增前置字串。

1.3.0-alpha01 版本

2020 年 2 月 19 日

androidx.exifinterface:exifinterface:1.3.0-alpha01 發布。查看 1.3.0-alpha01 版的修訂項目

API 變更

  • 新增方法:ExifInterface.getGpsDateTime()

1.2.0 版本

1.2.0 版本

2020 年 4 月 1 日

發布 androidx.exifinterface:exifinterface:1.2.01.2.0 版包含此連結所列的修訂項目。

自 1.1.0 版本以來的重大異動

  • 新增將 EXIF 新增至 PNG 檔案的支援功能
  • 新增 WebP 檔案和 EXIF 資料串流的支援功能
  • 新增 API,可檢查是否支援指定的 MIME 類型
  • 新增更多偏移時間標記:TAG_OFFSET_TIMETAF_OFFSET_TIME_DIGITIZEDTAG_OFFSET_TIME_ORIGINAL

1.2.0-rc01 版本

2020 年 2 月 19 日

androidx.exifinterface:exifinterface:1.2.0-rc01 發布。查看 1.2.0-rc01 版的修訂項目

修正錯誤

  • 修正 JPEG 檔案在含有 XMP 資料時無法正確儲存的問題

1.2.0-beta01 版

2019 年 12 月 18 日

發布了 androidx.exifinterface:exifinterface:1.2.0-beta011.2.0-beta01 版包含這些修訂版本

新功能

  • 新增將 EXIF 新增至 PNG 檔案的支援功能
  • 新增從 WebP 檔案讀取及寫入 EXIF 的支援功能
  • 新增僅限 EXIF 資料串流的支援功能

API 變更

  • 新增 API,可檢查是否支援指定的 MIME 類型
  • 揭露讀取及寫入 OffsetTime* 標記

修正錯誤

  • 修正 getAttributeRange() 傳回錯誤偏移值的問題

1.1.0 版本

1.1.0 版本

2019 年 11 月 20 日

androidx.exifinterface:exifinterface:1.1.0 發布。1.1.0 版包含此連結所列的修訂項目

自 1.0.0 版以來的重要變更

  • 支援 HEIF 格式和更多 XMP 標記
  • 新增從 FileFileDescriptor 建構 ExifInterface 物件的支援功能
  • 新增更多取得屬性的方法:hasAttributegetAttributeBytesgetAttributesRange

1.1.0-rc01 版本

2019 年 10 月 9 日

發布了 androidx.exifinterface:exifinterface:1.1.0-rc011.1.0-rc01 版包含這些修訂版本

修正錯誤

  • 新增缺少的格式名稱 (IFD),防止 loadAttributes 上的 ArrayIndexOutOfBoundsException
  • 已避免在呼叫 saveAttributes 時發生例外狀況時刪除原始檔案
  • 已修正在覆寫檔案後呼叫 saveAttributes() 時發生例外狀況問題。

1.1.0-beta01 版本

2019 年 7 月 2 日

發布 androidx.exifinterface:exifinterface:1.1.0-beta01。您可以前往這裡查看這個版本包含的修訂項目。

新功能

  • @NonNull 引數設為 null 時,擲回 NullPointerException
  • XMP 代碼的支援

API 變更

  • 新增更多取得屬性資訊的方法
  • hasAttributegetAttributeBytesgetAttributesRange

修正錯誤

  • 避免檔案描述元記憶體流失

1.1.0-alpha01 版本

2019 年 3 月 13 日

發布了 androidx.exifinterface:exifinterface:1.1.0-alpha01。您可以前往這裡查看這個版本包含的修訂項目完整清單。

新功能

  • 支援 HEIF 格式

API 變更

  • 新增更多 ExifInterface 建構函式
  • 修正錯字:TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

修正錯誤

  • 修正檢查縮圖圖片是否可能溢位的功能 (aosp/748608)