java - 确定文件是否支持 Java 中的 Exif 标头
问题描述
我正在使用 Java 和库元数据提取器来处理文件元数据。
我想要的是可靠地检查文件是否支持 Exif 标头(如果标头中尚不可用,是否支持它)。
据我所知,JPEG 和 TIFF 以及一些 PNG(以及其他)支持 Exif 标头。
目前我只是检查 JPEG 或 TIFF 的文件类型(通过使用 FileTypeDetector::detectFileType
),但是否可以在不检查文件类型的情况下可靠地确定文件是否支持 Exif 标头?然后也可以考虑也支持 Exif 标头的其他格式的文件。
提前致谢!
解决方案
是否可以在不检查文件类型的情况下可靠地确定文件是否支持 Exif 标头?
不。没有办法通过检查文件来“检测”文件是否支持 Exif 元数据(术语“Exif 标头”是用词不当)。我认为您当前确定文件格式的方式,并保留您知道支持 Exif 的格式列表是有意义的。
请注意,支持 Exif 元数据的每种文件格式通常将其包装在“本机”(如格式自己的)容器结构中,因此您通常必须为要添加 Exif 元数据的每种格式添加自定义代码。唯一的例外是 TIFF,因为 Exif 元数据基于 TIFF 格式。另请参阅有关 Exif 的 Wikipedia。
当然,技术上可以将 Exif 元数据附加或插入到任何文件中,但这通常会导致文件损坏或 Exif 元数据将被其他软件忽略。
推荐阅读
- azure - Azure B2B 多租户应用程序外部用户登录问题
- r - 根据 2 列的值将值与数据框匹配
- python - 我不明白为什么 Beautiful Soup 给出第一个链接而不是第二个,第一个 select_one 不会像第二个那样工作
- python-3.x - 将基于字符串的日期列表更改为一种特定格式
- r - 分割函数并将其应用于单个列表
- javascript - 如何使用 workbox-build generateSW 为缓存添加过期时间?
- raspbian - 如何在我的 pi4,buster 上正确启动脚本
- mysql - 当日期有差距时,mySQL 更新最近 5 个日期的平均数量
- c# - EF Core 未更新表
- c++ - 将一个类的实例转换为其子类合法吗?