在java8 及之前版本中,jdk 中的 ImageIO 读取图片内容会失败,解决办法使用 java9 或者使用第三方插件。
插件可以使用 TwelveMonkeys ImageIO,地址:https://github.com/haraldk/TwelveMonkeys
使用方法,在maven中添加依赖
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-tiff</artifactId>
<version>3.4.1</version>
</dependency>
因为 ImageIO 会自动搜索类路径下继承的接口和子类,因此不需要显示调用。完全无侵入。使用方法和之前的一样,例如,读取tiff的文件
String filename = "D:\\logs\\temp\\test.tif";
try {
BufferedImage bufferedImage = ImageIO.read(FileUtil.getInputStream(filename));
if (bufferedImage == null) {
System.out.println("image read null");
} else {
System.out.println("read success");
}
} catch (IOException e) {
e.printStackTrace();
}