1、下载libwebp
打开https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html,划到底部找到最新版本,根据操作系统选择合适的版本。
比如Windows选择libwebp-1.4.0-windows-x64.zip,macOS X86选择libwebp-1.4.0-rc1-mac-x86-64.tar.gz,macOS ARM选择libwebp-1.4.0-rc1-mac-arm64.tar.gz……根据你的实际情况来
2、准备脚本
将下载的文件解压,在解压出来的文件夹旁边再创建两个叫“input”和“output”的文件夹,然后>>>
Windows
创建一个名为c.bat的脚本文件,并用记事本写入:
@echo offss
setlocal enabledelayedexpansion
:: 设置输入文件夹路径
set "input_folder_path=input"
:: 设置输出文件夹路径
set "output_folder_path=output"
:: 检查输出文件夹是否存在,如果不存在则创建
if not exist "%output_folder_path%" mkdir "%output_folder_path%"
:: 设置cwebp工具的路径,如果cwebp在环境变量中,则不需要设置
:: set "cwebp_path=C:\path\to\cwebp\cwebp.exe"
:: 遍历输入文件夹中的所有图像文件
for %%i in ("%input_folder_path%\*.jpg", "%input_folder_path%\*.jpeg", "%input_folder_path%\*.png", "%input_folder_path%\*.bmp", "%input_folder_path%\*.gif") do (
:: 构建输出文件名
set "output_file=%output_folder_path%\%%~ni.webp"
:: 使用cwebp转换图像文件
:: 如果cwebp在环境变量中,直接使用cwebp,否则使用完整的路径
:: 替换下面的cwebp为%cwebp_path%,如果你设置了cwebp工具的路径
cwebp -q 80 "%%i" -o "!output_file!"
:: 输出转换结果
echo Converted %%i to !output_file!
)
echo All images have been converted.
endlocal
macOS/Linux
创建一个名为c.sh的脚本文件,并用纯文本编辑器写入:
#!/bin/bash
input_folder="./input"
output_folder="./output"
cwebp_folder="/Users/yanyige/Desktop/libwebp-1.4.0-rc1-mac-x86-64/bin/"
#cwebp的位置,改成你自己的
# 创建输出文件夹(如果不存在)
mkdir -p "$output_folder"
# 遍历输入文件夹中的图像文件
for img in "$input_folder"/*.{jpg,jpeg,png}; do
# 检查文件是否存在
[ -e "$img" ] || continue
# 获取文件名和扩展名
filename=$(basename "$img")
extension="${filename##*.}"
filename_no_ext="${filename%.*}"
# 转换为 WebP 格式
"$cwebp_folder"cwebp "$img" -o "$output_folder/${filename_no_ext}.webp"
done
保存好,最后,确认libwebp文件夹、input文件夹、output文件夹、c.ps1(sh)脚本在同一文件夹,脚本中的路径替换为实际的
3、使用
将你需要转换的图片放到input文件夹,运行c.bat(sh)
如果你看到终端大量类似这样的提示
Saving file './output/images1.webp'
File: ./input/images1.jpg
Dimension: 1920 x 1080
Output: 25226 bytes Y-U-V-All-PSNR 48.27 48.33 49.54 48.47 dB
(0.10 bpp)
block count: intra4: 1076 (13.19%)
intra16: 7084 (86.81%)
skipped: 4414 (54.09%)
bytes used: header: 120 (0.5%)
mode-partition: 7875 (31.2%)
Residuals bytes |segment 1|segment 2|segment 3|segment 4| total
macroblocks: | 3%| 5%| 3%| 89%| 8160
quantizer: | 36 | 36 | 31 | 24 |
filter level: | 11 | 9 | 27 | 10 |
打开output文件夹也有很多生成的webp文件,那就说明可以了。