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