图片上传报错 java.lang.IllegalArgumentException: image == null!
记录一次报错
java.lang.IllegalArgumentException: image == null!
jdk 版本:openjdk 1.8
问题复现:使用 ImageIO.read(new FileInputStream(imgPath)) 进行图片读取时,遇到 部分.jpg 格式图片上传 出现以上报错
问题分析:这些图片文件后缀是 jpg,但是实际格式是 webp,webp 是谷歌 2010 新出的图片类型,java8 无法读取,正常的方式读取就会报空。
解决方法:引入 webp-imageio-core-0.1.0.jar,正常读取。
<dependency> <groupId>com.github.nintha</groupId> <artifactId>webp-imageio-core</artifactId> <version>0.1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/webp-imageio-core-0.1.0.jar</systemPath> </dependency>
maven 中央仓库中没有发布该 jar 包,需要进行手动引入。否则会报错 webp-imageiodll: Can't find dependent libraries
github 下载地址:https://github.com/nintha/webp-imageio-core/releases
出现 Exception in thread "main" java.lang.UnsatisfiedLinkError: com.luciad.imageio.webp.WebPDecoderOptions.createDecoderOptions()J
可尝试更换其他版本 jar 包,第一次使用最新 1.3 版本,出现该错误,修改为 0.1.0,错误解决。
参考:https://segmentfault.com/a/1190000016324137?utm_source=sf-related