一、异常解释
javax.imageio.IIOException: Unsupported Image Type异常一般情况是由于图片颜色模式是CMYK导致的,因为其内部读取文件的类JPEGImageReader只能读取RGB color model
二、解决方案
使用TwelveMonkeys就可以解决了。
TwelveMonkeys的使用比较简单,只要把相关的jar包加入到类路径,他的类我们基本不会用到,只要使用jdk ImageIO或其上层的接口就行了。jdk的ImageIO有自动发现功能,会自动查找相关的编解码类并使用,而不使用jdk默认的编解码类。
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-jpeg</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-tiff</artifactId>
<version>3.4.1</version>
</dependency>
注:出来的图片是RGB格式 java默认输出图片的dpi只有72,想要得到更高或者更低分辨率的图片需要进行单独的设置