利用批处理实现webp和png、jpg 格式一键互转,只需一条命令
有些时候我们从一些网站下载的图片都是webp格式的,当我们需要使用这些图片的时候却发现无法直接使用。
首先我们先看看这个webp格式究竟是何方神圣,让使用它的APP或者网站越来越多。
WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,被认为是WebM多媒体格式的姊妹项目,是由Google在购买On2 Technologies后发展出来,以BSD授权条款发布。
WebP 的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性,在 JPEG 和 PNG 上的转化效果都相当优秀、稳定和统一。
简单来说,就是Google开发,优势是体积更小,画质损失更小,相互转换效果更优秀。
虽然这些年webp格式迅速发展壮大,但还不足以撼动png、jpg等主流格式,所以有些时候就会出现在某些地方无法使用的情况。
比如我从B站上下载了一张图片,右键图片存储为
弹出来的存储对话框,显示图片格式为webp
下载完之后,我想到直接插入到onenote中,插入的过程中onenote会告诉我这张图片有问题,让我换一张图片。
当然有很多笨方法可以解决这个问题。
比如一些图片转换软件
或者你把图片用Windows自带的画图软件打开,另存为需要的格式即可
也可以直接网页上右击该图片,选择 复制 ,之后打开QQ对话框,选择 粘贴 ,
然后在QQ对话框中右击该图片,选择 另存为 即可。
如果只有一张图片,这些方法都可以使用,并不会浪费太多时间,但如果有几十张webp格式的图片,我都需要转换成png或者jpg格式,那再使用这些方法就会耗费大量的时间和精力。
那有没有可以批量转换的方法呢,简单、快速而又有效的方法?
其实,只需要 一条命令 就可以完成,哪怕上百张需要转换。
我们需要先下载 libwebp
可根据文件的日期下载最新的版本
windows系统下载 libwebp-1.1.0-windows-x64.zip (32位系统去找对应的x86版本下载)
linux系统下载 libwebp-1.1.0 -linux-x86-64.tar.gz
macos系统下载 libwebp-1.1.0-mac-10.15.tar.gz
下面我们主要看看windows系统下如何来使用
下载完 libwebp-1.1.0-windows-x64.zip 后,将其解压缩,放到一个自己认为合适的位置,比如直接放到C盘
同时建立两个空文件夹备用,一个命名为 in(用来存放需要转换的图片文件),一个命名为 out(用来存放转换完成的图片文件)
我们要用到的命令是在libwebp-1.1.0-windows-x64文件夹下的bin文件夹里的 cwebp.exe 和 dwebp.exe
cwebp用来将jpg、png等格式的图片转换成webp格式
dwebp用来将webp格式的图片转换成png、jpg格式
但是,无论是在命令行模式或者批处理中,系统是无法直接识别这个命令的,所以我们需要将路径加入 环境变量 。
首先,右击 资源管理器 左边的 此电脑 ,选择 属性。
然后选择 高级系统设置
选择下方的 环境变量
我们可以看到 环境变量 中有 用户变量 和 系统变量,这里我们只需要将其加入 用户变量 中即可。在 用户变量 中 选中 Path,点 编辑 。
在弹出的编辑对话框中,选择新建 ,将 cwebp.exe和dwebp.exe 的路径复制过去即可
编辑好环境变量,我们就可以直接使用 cwebp 和 dwebp这两个命令来进行图片转换了。
1-将webp转换成png、jpg格式用到的命令只有一条
dwebp in_file -o out_file
例如:
dwebp zhidemai.webp -o zhidemai.png
意思是将zhidemai.webp格式的图片转换为png格式
2-将png、jpg转换成webp格式用到的命令也只有一条
cwebp -q float in_file -o out_file
float的范围是0到100,代表了转换生成的图片质量,默认是75,如果需要100%的质量需要手动指定这个数值
例如:
cwebp -q 100 zhidemai.png -o zhidemai.webp
意思是将zhidemai.png格式的图片转换为webp格式,质量为100%
如果需要将webp和jpg互相转换,只需要将上面2条命令中的.png换成.jpg就可以了
既然知道了转换方式,webp批量转换成png,使用dwebp进行转换
批量进行转换的话,我们只需要写一个批处理文件即可,因为已经加入了环境变量中,所以批处理文件可以在电脑的任何位置建立、使用。
比如我们在 桌面 新建一个文本文档
将下面这条命令复制进去,然后选择 另存为所有文件,后缀名为.bat。
意思是从C盘in这个文件夹里遍历所有webp格式的文件,并依次进行转换成png格式的文件并依次存放在out这个文件夹中。
之后,我们只需要将要所有要转换的图片都放进 in 这个文件夹中,右键 管理员方式 运行 这个批处理文件 即可。转换后的文件会自动存入out 这个文件夹中。
之所以用管理员方式运行,是因为我将文件夹建立在C盘了,如果建立在别的磁盘,可以直接双击运行即可。
同理,png转成webp,使用cwebp进行转换
其中,in和out 可根据自己喜好该更名称,也可放入D盘或者其他盘。
比如,我们把in改成aaa,out改成bbb,放到D盘
那批处理命令就应该相应的改为如下:
如果我们需要将png格式转换为webp格式,命令相应变为
jpg格式和webp格式互转,只需要将命令中的png换做jpg即可。
至于macos系统的下的批量转换,可以使用python来进行转换,但因为篇幅原因,暂且先不做讲解,以后填坑。






















八奈見杏菜
cwebp ($file> -q 100 -m 6 -metadata all -near_lossless 0 -alpha_filter best -sharp_yuv -sns 100 -strong -mt -o ($out+$b+”.JPG.WEBP”>
cwebp ($file> -z 9 -metadata all -lossless -mt -o ($out+$b+”.PNG.WEBP”>
校验提示文案
snsnjsn
@ECHO OFF
::SET DIR=E:\webp\in
SET DIR=%~1
IF "%DIR:~-1%" NEQ "\" (
SET DIR=%DIR%\
)
IF NOT EXIST "%DIR%" (
ECHO NOT_FOUND: %DIR%
EXIT /B 2
)
FOR /R "%DIR%" %%p IN (*.png) DO (
IF NOT EXIST "%%p.webp" (
cwebp -q 100 "%%p" -o "%%p.webp"
)
)
pause
解决的
校验提示文案
跳跳
校验提示文案
值友6698012603
校验提示文案
值友6698012603
校验提示文案
snsnjsn
@ECHO OFF
::SET DIR=E:\webp\in
SET DIR=%~1
IF "%DIR:~-1%" NEQ "\" (
SET DIR=%DIR%\
)
IF NOT EXIST "%DIR%" (
ECHO NOT_FOUND: %DIR%
EXIT /B 2
)
FOR /R "%DIR%" %%p IN (*.png) DO (
IF NOT EXIST "%%p.webp" (
cwebp -q 100 "%%p" -o "%%p.webp"
)
)
pause
解决的
校验提示文案
跳跳
校验提示文案
八奈見杏菜
cwebp ($file> -q 100 -m 6 -metadata all -near_lossless 0 -alpha_filter best -sharp_yuv -sns 100 -strong -mt -o ($out+$b+”.JPG.WEBP”>
cwebp ($file> -z 9 -metadata all -lossless -mt -o ($out+$b+”.PNG.WEBP”>
校验提示文案