javax.imageio.IIOException: Can't read input file

author: Nathannie
date: 2022-03-24-19:05
date updated: '2022-03-24T19:28:51+08:00'
tags:

  • '#thumbnailator'
  • '#IO异常'
问题背景 学习ssm项目,实现商品添加功能,测试service层代码,在测试类中添加数据,添加图片报错。
报错信息 【javax.imageio.IIOException: Can't read input file】报错内容:
java.lang.RuntimeException: 创建缩图片失败:javax.imageio.IIOException: Can't read input file!

报错截图:
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()); }

javax.imageio.IIOException: Can't read input file
文章图片

问题解决 结合相关参考给出的几个链接中可能的问题原因,最后发现是水印图片名称错误,导致整个水印图片的路径错误,读取图片文件错误。实际上代码没有问题,正确路径下的水印图片名为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...

    推荐阅读