博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java—将webp格式图片转为jpg或png (windows)
阅读量:3904 次
发布时间:2019-05-23

本文共 1222 字,大约阅读时间需要 4 分钟。

目的

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.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文件大一倍甚至更多。会占用很大的空间。

转载地址:http://comen.baihongyu.com/

你可能感兴趣的文章
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>
TCP重传定时器
查看>>
CentOS 6.3 - 安装 Nginx 1.2.7(yum源)
查看>>
shell中trap捕获信号
查看>>
关于Linux Shell的信号trap功能你必须知道的细节
查看>>
Linux原始套接字实现分析
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>
#ifdef DEBUG的理解
查看>>
Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
查看>>
慧眼云:基于云计算和大数据分析的主动防御实践
查看>>
58集团监控业务实践:将网站运行信息透明化
查看>>
给Django用户的SQLAlchemy介绍
查看>>
consul http api
查看>>
如何定位问题
查看>>
使用火焰图分析CPU性能回退问题
查看>>
openresty lua zlib整合安装 让lua支持解压服务端压缩过的数据
查看>>