java中有任何方法可以用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]如果我试着读那些图片。
与此相关的一点是:我们有时也会得到jpg图像和其他ImageIO.read也无法处理的元数据,因此我非常希望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);发布于 2012-10-26 13:18:27
这里没有很多可供选择的选项。如果一个人想要解决一个特定的问题,它可以毫无疑问地在Java中完成。然而,如果您只是在项目中寻找一个库来做一些图像操作,而不需要成为一个图形专家程序员,那么开源java库还不能与商业库或非Java库相提并论。一个简单的搜索就会揭示出这个州。因此,如果您需要在生产环境中有一个可靠的、最小的惊喜,那么您很可能(在我看来)会得到以下结果之一(在本文发布之日状态):
1-商业产品,例如雪界RasterMaster
2-使用像ImageMagick (或GraphicsMagick)这样的工具,并为它们选择使用java接口,例如im4java或JMagick。
至于你的问题,你提到使用mogrify。您还可以为输出图像设置颜色空间,它可能解决您的问题:ImageMagick颜色空间
因此,您可以在jpg文件上尝试:"/usr/bin/mogrify -strip -colorspace sRGB“。
https://stackoverflow.com/questions/13070702
复制相似问题