在Java中有没有什么办法用EXIF元数据加载JPEG图像?加载与exif和/或损坏的元数据JPEG图像
我不需要的EXIF数据(或任何其他元数据),但问题是,JavaIO.read给我:
javax.imageio.IIOException: Unsupported Image Type
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:995) ~[na:1.7.0_09]
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:966) ~[na:1.7.0_09]
at javax.imageio.ImageReader.read(ImageReader.java:940) ~[na:1.7.0_09]
如果我尝试读取图像。
在相关说明:我们有时也会得到带有ImageIO.read无法处理的其他元数据的jpg图像,所以我真的很喜欢jpeg阅读器,它不会尝试读取/处理/理解任何元数据。但我一直无法找到任何。
图像数据本身更新受损,所有其他软件(Gimp,Firefox等)都可以正确读取并显示图像。
我什至试过以下,但它仍然无法读取图像。
Iterator readers = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)readers.next();
ImageInputStream iis = ImageIO.createImageInputStream(sourceFile);
reader.setInput(iis,true,true);
BufferedImage image = reader.read(0);
你确定它的元数据?对于用CMYK编码的文件,我遇到了类似的问题。什么是您的图像的颜色模型/空间? –
有趣的故事。原来是某些文件的元数据,以及其他文件的颜色配置文件问题。但是现在我只是在文件上运行/ usr/bin/mogrify -strip如果我无法打开它们,它会处理大多数问题,除了所有的颜色配置文件问题。我仍然希望有一个更好的java库来处理颜色配置文件(Expecially cmyk)/愚蠢的伽马值和相似的问题(我目前有一个.jpg文件,其中有更多的色域数据,然后图像数据)问题的JPG文件。 – MTilsted