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 变得更好。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 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 将导致无操作。(If924cb/236484611

错误修复

  • 在遇到无效的 IFD 偏移量后继续解析(b/264729367)。
  • 处理在 Exif 数据之前错误地包含 JPEG APP1 标记的 WebP 图像(b/281638358)。
  • 确保具有单独 XMP 段的 JPEG 中的 XMP 更改存储在同一单独的 XMP 段中,而不是写入 TIFF/Exif 标记 700 中,该标记不受 XMP 规范支持,并且许多工具都无法在其中找到它们。
  • 保存时避免将来自单独段的 XMP 数据复制到 TIFF 预览目录中(b/309843390)。
  • 提高双精度到有理数转换的精度。(b/312680558)。
  • 接受有理数格式 (x/y) 到 setAttribute,用于“传统”有理数标记,这些标记在从 getAttribute 返回时自动转换为十进制(b/312680558)。

  • 确保添加到尚未包含 XMP 的 JPEG 图像中的 XMP 数据写入单独的段,如 XMP 规范所指定。ExifInterface 文档说明在 JPEG 图像中优先使用 Exif 700 标记中的 XMP(违反规范),因此在读取/写入包含现有 XMP 数据的图像时会保留此行为。
  • 修复写入高度或宽度大于 8191px 的 WebP 图像时输出损坏的问题(b/342697059)。
  • 此库现在使用JSpecify 空值注解,它们是类型使用。Kotlin 开发人员应使用以下编译器参数来强制执行正确的用法:-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-modeI5cd0fb/326456246
  • 删除了对新平台 API 的手动访问概述,因为在使用 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)时,以及在使用 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.7 已发布。版本 1.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.6 已发布。版本 1.3.6 包含这些提交。

错误修复

  • 修复从 WebP VP8L 块读取 alpha 位的问题(b/255405635)。

版本 1.3.5

版本 1.3.5

2022 年 10 月 24 日

androidx.exifinterface:exifinterface:1.3.5 已发布。版本 1.3.5 包含这些提交。

错误修复

  • 修复了 saveAttributes() 产生无效 WebP 文件的两种情况。

版本 1.3.4

版本 1.3.4

2022 年 10 月 5 日

androidx.exifinterface:exifinterface:1.3.4 已发布。版本 1.3.4 包含这些提交。

错误修复

  • 删除对将属性保存到 DNG 文件的支持。1.3.3 中添加的支持不完整,并产生了损坏的文件。

版本 1.3.3

版本 1.3.3

2021 年 8 月 4 日

androidx.exifinterface:exifinterface:1.3.3 已发布。版本 1.3.3 包含这些提交。

错误修复

  • 修复解析与 subsec 相关的标记。(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 包含这些提交。

错误修复

  • 允许 SRATIONAL 用于 GPS_LATITUDEGPS_LONGITUDE
  • 添加了对读取/写入 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-rc01 已发布,自 1.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 异常。
  • 将默认语言环境设置为美国英语。
  • 将创建临时文件时添加“.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.0 已发布。版本 1.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 数据,则 JPEG 文件保存不正确的问题

版本 1.2.0-beta01

2019 年 12 月 18 日

androidx.exifinterface:exifinterface:1.2.0-beta01 已发布。版本 1.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-rc01 已发布。版本 1.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