WebP 是一种现代图像格式,可为 Web 上的图像提供出色的无损和有损压缩。使用 WebP,网站管理员和 Web 开发人员可以创建尺寸更小、内容更丰富的图像,从而使 Web 更快。本文将指导您如何使用 Google 官方提供的 `libwebp` 工具包批量将您现有的图片(如 JPG, PNG, BMP, GIF 等)转换为 WebP 格式。

#### 1、下载libwebp

打开https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html,划到底部找到最新版本,根据操作系统选择合适的版本。

比如Windows选择[libwebp-1.4.0-windows-x64.zip](https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.4.0-windows-x64.zip),macOS X86选择[libwebp-1.4.0-rc1-mac-x86-64.tar.gz](https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.4.0-rc1-mac-x86-64.tar.gz),macOS ARM选择[libwebp-1.4.0-rc1-mac-arm64.tar.gz](https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.4.0-rc1-mac-arm64.tar.gz)……根据你的实际情况来

#### 2、准备脚本

将下载的文件解压,在解压出来的文件夹旁边再创建两个叫“input”和“output”的文件夹,然后>>>

##### Windows

创建一个名为c.bat的脚本文件,并用记事本写入:

```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的脚本文件,并用纯文本编辑器写入:

```shell
#!/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)

如果你看到终端大量类似这样的提示

```bat
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文件,那就说明可以了。

最后修改:2025 年 05 月 31 日
如果觉得我的文章对你有用,请随意赞赏