Java—将webp格式图片转为jpg或png (windows)

目的

webp格式是谷歌研发的一种新的图片格式具有空间小效果好的优点,然而像IOS14系统以下并不支持这样的格式,所以需要我们后端来转成jpg或png格式。

方法

起初我尝试引入 webp-imageio.jar 来完成(很多文章中提到的方法)
结果执行后报错:java.lang.IllegalArgumentException: image == null!


java.lang.IllegalArgumentException: image == null! 
at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(Unknown Source) 
at javax.imageio.ImageIO.getWriter(Unknown Source) 
at javax.imageio.ImageIO.write(Unknown Source) 

尝试了各种修改代码,但是仍然未解决。当时很郁闷,似乎其他人都没有遇到这个问题,都可以完美运行。
后来发现 这种问题的只是在windows系统里才出现。
既然并不是自己代码的问题,那就是在 导入 webp-imageio.jar 包的一开始就出错了,那只能借助其他办法了。

最终解决方法

借助:libwebp-0.4.2-windows-x64 工具包

下载libwebp-0.4.2-windows-x64.zip,解压到有读写权限的目录下。


	public static void main() throws Exception {
        //这里是 libwebp-0.4.2-windows-x64.zip解压后的路径
        String str1 = "D:/file/images/libwebp-0.4.2-windows-x64/bin/dwebp.exe";
        //webp图片的路径
        String str2 = "D:/file/images/temp.webp";
        //转换后图片的路径
        String str3 = "D:/file/images/temp.jpg";
        String[] args = {str1, str2, "-o", str3};
        try {
            Runtime.getRuntime().exec(args);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

执行后
在这里插入图片描述
转换效果很好,跟源文件清晰度一样。
需要注意的是 转换后的jpg文件,要比webp文件大一倍甚至更多。会占用很大的空间。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值