Exifinterface
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 4 月 23 日 | 1.4.1 | - | - | - |
声明依赖项
要添加对 Exifinterface 的依赖项,您必须将 Google Maven 仓库添加到您的项目中。请阅读Google 的 Maven 仓库了解更多信息。
在您应用或模块的 build.gradle
文件中添加您所需构件的依赖项
Groovy
dependencies { implementation "androidx.exifinterface:exifinterface:1.4.1" }
Kotlin
dependencies { implementation("androidx.exifinterface:exifinterface:1.4.1") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有问题。您可以通过点击星形按钮为现有问题投票。
有关更多信息,请参阅问题跟踪器文档。
版本 1.4
版本 1.4.1
2025 年 4 月 23 日
androidx.exifinterface:exifinterface:1.4.1
已发布。版本 1.4.1 包含这些提交。
Bug 修复
- 修复了向
setAttribute
传递空值给TAG_XMP
会抛出异常的错误。
版本 1.4.0
2025 年 2 月 26 日
androidx.exifinterface:exifinterface:1.4.0
已发布。版本 1.4.0 包含这些提交。
版本 1.4.0-rc01
2025 年 1 月 29 日
androidx.exifinterface:exifinterface:1.4.0-rc01
已发布,自 beta01 以来无更改。版本 1.4.0-rc01 包含这些提交。
版本 1.4.0-beta01
2025 年 1 月 15 日
androidx.exifinterface:exifinterface:1.4.0-beta01
已发布。版本 1.4.0-beta01 包含这些提交。
API 变更
- 更新 HEIC XMP 处理,优先使用文件中单独段的 XMP 数据,而不是 Exif 数据中的标签 700。
Bug 修复
- 修复
ExifInterface.getThumbnail*()
方法在调用saveAttributes()
后无法正确工作的问题(之前调用会成功,但结果不正确/未定义) - 修复 PNG XMP 处理,以读取和写入单独的 iTXt XMP 块,而不是 eXIf 块中的标签 700。
- 修复处理带有尾部非 WebP 数据的图像文件时
WebP
图像损坏的问题。(b/385766064)。
版本 1.4.0-alpha01
2024 年 11 月 13 日
androidx.exifinterface:exifinterface:1.4.0-alpha01
已发布。版本 1.4.0-alpha01 包含这些提交。
新功能
- 添加了对读取 HEIF 图像中的 XMP 数据支持。
- 添加了对读取 AVIF 图像中的 Exif 和 XMP 支持。
API 变更
- 指出
setGpsInfo
的location
参数是@Nullable
,并且传递null
将导致无操作。(If924c,b/236484611)
Bug 修复
- 遇到无效 IFD 偏移后继续解析(b/264729367)。
- 处理 WebP 图像,这些图像在其 Exif 数据之前错误地包含 JPEG APP1 标记(b/281638358)。
- 确保
saveAttributes()
将带有单独 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 数据的图像时保留此行为。 - 修复写入高度或宽度大于 8191 像素的 WebP 图像时输出损坏的问题(b/342697059)。
- 此库现在使用 JSpecify 空值注解,它们是类型使用的。Kotlin 开发者应使用以下编译器参数强制正确使用:
-Xjspecify-annotations=strict
(这是 Kotlin 编译器 2.1.0 版开始的默认设置)。(I5cd0f,b/326456246) - 移除了对新平台 API 访问的手动概要,因为在使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 以及使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有构建中,这都会通过 API 建模自动发生。建议不使用 AGP 的客户端更新到 D8 版本 8.1 或更高版本。有关更多详细信息,请参阅本文。( If6b4c,b/345472586)
版本 1.3.7
版本 1.3.7
2023 年 12 月 13 日
androidx.exifinterface:exifinterface:1.3.7
已发布。版本 1.3.7 包含这些提交。
Bug 修复
- 当尝试写入过大的 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 包含这些提交。
Bug 修复
- 修复了从 WebP VP8L 块读取 alpha 位的问题(b/255405635)。
版本 1.3.5
版本 1.3.5
2022 年 10 月 24 日
androidx.exifinterface:exifinterface:1.3.5
已发布。版本 1.3.5 包含这些提交。
Bug 修复
- 修复了
saveAttributes()
产生无效 WebP 文件的两种情况。
版本 1.3.4
版本 1.3.4
2022 年 10 月 5 日
androidx.exifinterface:exifinterface:1.3.4
已发布。版本 1.3.4 包含这些提交。
Bug 修复
- 移除对将属性保存到 DNG 文件的支持。1.3.3 中添加的支持不完整,并产生了损坏的文件。
版本 1.3.3
版本 1.3.3
2021 年 8 月 4 日
androidx.exifinterface:exifinterface:1.3.3
已发布。版本 1.3.3 包含这些提交。
Bug 修复
- 修复子秒相关标签的解析。(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 包含这些提交。
Bug 修复
- 允许
SRATIONAL
用于GPS_LATITUDE
和GPS_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 包含这些提交。
Bug 修复
- 修复 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
返回无效日期时间值。
Bug 修复
- 将
getGpsDateTime
更改为返回Long.MIN_VALUE
而不是-1
,因为-1
是一个有效值。 - 使与日期时间相关的 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 以来的主要更改
- 增加了对向 PNG 文件添加 EXIF 的支持
- 增加了对 WebP 文件和仅包含 EXIF 数据流的支持
- 添加了用于检查是否支持指定 MIME 类型的 API
- 为偏移时间添加了更多标签:
TAG_OFFSET_TIME
、TAF_OFFSET_TIME_DIGITIZED
和TAG_OFFSET_TIME_ORIGINAL
版本 1.2.0-rc01
2020 年 2 月 19 日
androidx.exifinterface:exifinterface:1.2.0-rc01
已发布。版本 1.2.0-rc01 包含这些提交。
Bug 修复
- 修复了 JPEG 文件包含 XMP 数据时保存不正确的问题
版本 1.2.0-beta01
2019 年 12 月 18 日
androidx.exifinterface:exifinterface:1.2.0-beta01
已发布。此版本包含的提交可在此处找到。
新功能
- 增加了对向 PNG 文件添加 EXIF 的支持
- 增加了对从 WebP 文件读取和写入 EXIF 的支持
- 增加了对仅包含 EXIF 数据流的支持
API 更改
- 添加了用于检查是否支持指定 MIME 类型的 API
- 公开了读写 OffsetTime* 标签
Bug 修复
- 修复了
getAttributeRange()
返回不正确偏移量的问题
版本 1.1.0
版本 1.1.0
2019 年 11 月 20 日
androidx.exifinterface:exifinterface:1.1.0
已发布。版本 1.1.0 包含这些提交。
自 1.0.0 以来的重要更改
- 支持 HEIF 格式和更多 XMP 标签
- 增加了从
File
或FileDescriptor
构建ExifInterface
对象的功能 - 添加了更多获取属性的方法:
hasAttribute
、getAttributeBytes
和getAttributesRange
版本 1.1.0-rc01
2019 年 10 月 9 日
androidx.exifinterface:exifinterface:1.1.0-rc01
已发布。版本 1.1.0-rc01 包含这些提交。
Bug 修复
- 添加了缺失的格式名称 (IFD) 以防止在
loadAttributes
上出现ArrayIndexOutOfBoundsException
- 防止在调用
saveAttributes
时发生异常时删除源文件 - 修复了覆盖文件后调用
saveAttributes()
时出现异常的问题。
版本 1.1.0-beta01
2019 年 7 月 2 日
androidx.exifinterface:exifinterface:1.1.0-beta01
已发布。此版本中包含的提交可在此处找到。
新功能
- 为
@NonNull
参数设置null
时抛出NullPointerException
- 支持 XMP 标签
API 更改
- 添加了更多获取属性信息的方法
hasAttribute
、getAttributeBytes
和getAttributesRange
Bug 修复
- 防止文件描述符内存泄漏
版本 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
Bug 修复
- 修复了缩略图图像可能溢出的检查(aosp/748608)