使用 javax.imageio 读取 jpeg 或 gif 元数据

Reading jpeg or gif metadata with javax.imageio

我想修改某些类型图像(png、jpeg 或 gif)的元数据,我在这个 上找到了一个非常适合 PNG 图像的代码,由 haraldK 提供。但是,当我尝试在 jpg 图像上 运行 它时,它会抛出此错误: javax.imageio.IIOException: JFIF APP0 必须是 SOI 之后的第一个标记。到达 IIOImage image = reader.readAll(0, null);

行时抛出错误

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

提前感谢您的回答。

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

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