首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用exif和/或损坏的元数据加载jpeg图像

用exif和/或损坏的元数据加载jpeg图像
EN

Stack Overflow用户
提问于 2012-10-25 14:21:22
回答 1查看 1.5K关注 0票数 1

java中有任何方法可以用exif元数据加载jpeg映像吗?

我不需要exif数据(或任何其他元数据),但问题是JavaIO.read给了我:

代码语言:javascript
复制
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等)都可以正确读取和显示图像。

我甚至尝试了下面的方法,但它仍然无法读取图像。

代码语言:javascript
复制
            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);
EN

回答 1

Stack Overflow用户

发布于 2012-10-26 13:18:27

这里没有很多可供选择的选项。如果一个人想要解决一个特定的问题,它可以毫无疑问地在Java中完成。然而,如果您只是在项目中寻找一个库来做一些图像操作,而不需要成为一个图形专家程序员,那么开源java库还不能与商业库或非Java库相提并论。一个简单的搜索就会揭示出这个州。因此,如果您需要在生产环境中有一个可靠的、最小的惊喜,那么您很可能(在我看来)会得到以下结果之一(在本文发布之日状态):

1-商业产品,例如雪界RasterMaster

2-使用像ImageMagick (或GraphicsMagick)这样的工具,并为它们选择使用java接口,例如im4javaJMagick

至于你的问题,你提到使用mogrify。您还可以为输出图像设置颜色空间,它可能解决您的问题:ImageMagick颜色空间

因此,您可以在jpg文件上尝试:"/usr/bin/mogrify -strip -colorspace sRGB“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13070702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档