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