Exifinterface
| 最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 12 月 3 日 | 1.4.2 | - | - | - |
声明依赖项
如需添加 Exifinterface 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库。
在应用或模块的 build.gradle 文件中添加所需工件的依赖项:
Groovy
dependencies { implementation "androidx.exifinterface:exifinterface:1.4.2" }
Kotlin
dependencies { implementation("androidx.exifinterface:exifinterface:1.4.2") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.4
版本 1.4.2
2025 年 12 月 3 日
发布了 androidx.exifinterface:exifinterface:1.4.2。版本 1.4.2 中包含这些提交内容。
bug 修复
- 支持解析在任何标记之前包含额外(允许)0xFF 字节的 JPEG。
版本 1.4.1
2025 年 4 月 23 日
发布了 androidx.exifinterface:exifinterface:1.4.1。版本 1.4.1 中包含这些提交内容。
bug 修复
- 修复了以下 bug:将 null 传递给
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)。
- 处理错误地在其 Exif 数据之前包含 JPEG APP1 标记的 WebP 图片 (b/281638358)。
- 确保通过
saveAttributes()将具有单独 XMP 段的 JPEG 中的 XMP 更改存储到同一单独 XMP 段中,而不是写入到 XMP 规范不支持的 TIFF/Exif 标记 700,因为许多工具都无法在其中找到这些更改。 - 避免在保存时将单独片段中的 XMP 数据复制到 TIFF 预览目录中 (b/309843390)。
- 提高了从 double 到 rational 的转换的精确度。(b/312680558)。
- 接受
setAttribute的有理数格式 (x/y),以用于“旧版”有理数标记,这些标记在从getAttribute返回时会自动转换为十进制数 (b/312680558)。 - 确保添加到尚不包含 XMP 的 JPEG 图像的 XMP 数据会写入单独的段,如 XMP 规范中所述。
ExifInterface已记录为优先选择 JPEG 图像中 Exif 700 标记中的 XMP(违反规范),因此在读取/写入具有现有 XMP 数据的图像时,此行为会保留。 - 修复了在写入高度或宽度大于 8191 像素的 WebP 图片时输出损坏的问题 (b/342697059)。
- 此库现在使用 JSpecify nullness 注解,这些注解属于 type-use 类型。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)的所有 build 时,系统会通过 API 建模自动进行 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 修复
- 修复了解析与 secsec 相关的标记时出现的问题。(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 修复
- 允许
GPS_LATITUDE和GPS_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 中包含这些提交内容。
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返回无效的 DateTime 值。 - 对于无效值,让
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返回无效的 DateTime 值。
bug 修复
- 让
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 以来的重要变更
- 支持向 PNG 文件中添加 EXIF
- 支持 WebP 文件和仅包含 EXIF 数据的流
- 添加了一个 API,用于检查是否支持指定的 MIME 类型
- 为偏移时间添加了更多标记:
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 数据的情况下,JPEG 无法正确保存的问题
版本 1.2.0-beta01
2019 年 12 月 18 日
发布了 androidx.exifinterface:exifinterface:1.2.0-beta01。版本 1.2.0-beta01 中包含这些提交内容。
新功能
- 支持向 PNG 文件中添加 EXIF
- 支持从 WebP 文件中读取和写入 EXIF
- 支持仅包含 EXIF 数据的流
API 变更
- 添加了一个 API,用于检查是否支持指定的 MIME 类型
- 公开了读取和写入 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)