由于JPEG不好,ImageIO给我一个CMMException

时间:2013-09-12 14:49:48

标签: java javax.imageio

我尝试使用ImageIO.read()读取JPEG文件,但对于此image,它会给我一个CMMException。在阅读thisthis后,我理解ImageIO无法读取某种jpeg文件。
所以我需要一个解决方案来阅读所有类型的图像。 JAI库看起来像一个死库。我并不反对TwelveMonkeys如何运作。所以如果有人对它或其他替代方案进行解释,我会接受它。感谢的

1 个答案:

答案 0 :(得分:6)

要读取大多数JPEG(即使是导致CMMException s的那些JPEG),您可以使用ImageIO和TwelveMonkeys ImageIO插件。为此,请将以下依赖项添加到Maven项目中:

<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-jpeg</artifactId>
<version>3.0</version> 

如果您已使用ImageIO读取图像,则无需更改代码。 : - )

要验证插件是否在运行时安装和使用,您可以使用以下代码:

Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("JPEG");
while (readers.hasNext()) {
    System.out.println("reader: " + readers.next());
}

第一行应该打印:

reader: com.twelvemonkeys.imageio.plugins.jpeg.JPEGImageReader@somehash