图片上传报错 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