author: Nathannie
date: 2022-03-24-19:05
date updated: '2022-03-24T19:28:51+08:00'
tags:
- '#thumbnailator'
- '#IO异常'
报错信息 【javax.imageio.IIOException: Can't read input file】报错内容:
java.lang.RuntimeException: 创建缩图片失败:javax.imageio.IIOException: Can't read input file!
报错截图:
文章图片
问题分析 图片使用 thumbnailator 工具库处理图片,给图片添加水印。根据报错信息,可知道
Can't read input file!
指的获取水印图片文件报错,具体位于try {
.outputQuality(0.8f)/*压缩图片*/
.toFile(dest);
Thumbnails.of(thumbnail.getImage()).size(337, 640)
.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(basePath + "/wartermark.jpg")), 0.25f)
.outputQuality(0.9f).toFile(dest);
} catch (IOException e) {
logger.error(e.toString());
throw new RuntimeException("创建缩图片失败:" + e.toString());
}
文章图片
问题解决 结合相关参考给出的几个链接中可能的问题原因,最后发现是水印图片名称错误,导致整个水印图片的路径错误,读取图片文件错误。实际上代码没有问题,正确路径下的水印图片名为
warter.jpg
(这里water水错写为warter),而给出的水印路径为water.jpg
。总之,对于使用thumbnailator给图片添加水印出现的错误
javax.imageio.IIOException: Can't read input file!
问题出现在ImageIO.read()
读取上。相关参考
- https://www.cnblogs.com/qingm...
- https://www.cnblogs.com/wangg...
- https://blog.csdn.net/pengzhi...