ImageIO.read报错IIOException-Unsupported Image Type解决办法

2022-08-16 97点热度 0人点赞 0条评论

问题描述

在使用Java的BufferedImage处理图片的时候,需要使用ImageIO读入图片文件:

BufferedImage bufferedImage = ImageIO.read(new File("/path/to/image.jpg"));

发现就最开始读入的时候,报错:

Exception in thread "main" javax.imageio.IIOException: Unsupported Image Type
    at java.desktop/com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1156)
    at java.desktop/com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1127)
    at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1470)
    at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1317)

解决办法

原因是原生的Java代码遇到某些jpg或者其他格式,还会有不支持的格式,解决办法是使用github上开源的Java处理Image的扩展包:https://github.com/haraldk/TwelveMonkeys

使用的时候,只要引入对应的依赖即可,原来的Java代码都不需要修改,ImageIO会自动加载并进行适配,相当于加载插件的形式。

例如处理jpg的对应依赖:pom.xml:

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

其他格式的如下:

<dependency>
        <groupId>com.twelvemonkeys.imageio</groupId>
        <artifactId>imageio-bmp</artifactId>
        <version>3.8.2</version>
</dependency>

<dependency>
        <groupId>com.twelvemonkeys.imageio</groupId>
        <artifactId>imageio-tiff</artifactId>
        <version>3.8.2</version>
</dependency>

更多plugin请参考TwelveMonkeys的文档

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论