我尝试使用ImageIO.read()读取JPEG文件,但是为此image它给了我一个CMMException。读取thisthis后,我了解ImageIO无法读取某种jpeg文件。
因此,我需要一种解决方案来读取所有类型的图像。 JAI库看起来像是一个失效的库。而且我也不会忘记TwelveMonkeys的工作方式。因此,如果有人对此有解释或其他替代方法,我将接受。谢谢

最佳答案

要读取大多数JPEG(甚至导致CMMException的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

关于java - 由于错误的JPEG,ImageIO给我一个CMMException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18767539/

10-12 02:49