java - 使用 javax.imageio 读取 jpeg 或 gif 元数据
问题描述
我想修改某些类型的图像(png、jpeg 或 gif)的元数据,我发现一个代码非常适用于这个主题的 PNG 图像,由 haraldK 提供。但是,当我尝试在 jpg 图像上运行它时,它会引发此错误:
javax.imageio.IIOException: JFIF APP0 must be first marker after SOI。上线时报错IIOImage image = reader.readAll(0, null);
我该怎么做才能让它工作?
提前感谢您的回答。
解决方案
您面临的问题是 JPEG 标准没有定义文件格式。出现了几种文件格式。例如 JFIF。EXIF。斯皮夫。这些格式以不同的方式表示元数据。显然,您尝试使用的库仅支持 JFIF 文件格式。显然,您的库仅支持 JFIF 格式,而您有不同格式的文件(可能是 EXIF)。
因此,您需要一个支持您的文件格式的库,或者您需要修改您必须使用的任何文件格式的库。这可能是一个相当大的变化。
推荐阅读
- python - 将 Markdown 格式的表格从 SO 复制到 pandas 剪贴板
- apache-flink - Apache Flink EventTime 处理不起作用
- excel - Windows 更新后 Excel 宏不起作用 - Office 365
- python - 在 Python 中编写 Discord 机器人 - 在 Heroku 上托管我的机器人时遇到了一些问题
- c# - 如何创建一个采用映射的通用列表和字符串参数的方法?
- go - 如何检查2个目录是否在同一个分区上?
- c# - 接口和异步实践
- java - 当我检测到未接来电而不是当呼叫被拒绝时如何做某事
- python - 说明人工神经网络层
- angular - 重新加载时 Mat-tab 不在底层