首页 > 解决方案 > 使用 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);

我该怎么做才能让它工作?

提前感谢您的回答。

标签: javapngjpeggifjavax.imageio

解决方案


您面临的问题是 JPEG 标准没有定义文件格式。出现了几种文件格式。例如 JFIF。EXIF。斯皮夫。这些格式以不同的方式表示元数据。显然,您尝试使用的库仅支持 JFIF 文件格式。显然,您的库仅支持 JFIF 格式,而您有不同格式的文件(可能是 EXIF)。

因此,您需要一个支持您的文件格式的库,或者您需要修改您必须使用的任何文件格式的库。这可能是一个相当大的变化。


推荐阅读