cwebp
是 Google 提供的一个命令行工具,用于将图像(如 PNG、JPEG、TIFF)压缩并转换为 WebP 格式。它支持 有损和无损压缩,适用于开发、自动化批处理或图像优化场景。
🔧 安装方式
macOS
brew install webp
基本用法
cwebp [options] input_file -o output_file.webp
示例(有损压缩)
cwebp input.jpg -q 80 -o output.webp
-q
:压缩质量(0–100),默认 75。数值越高,质量越好,文件越大。
示例(无损压缩)
cwebp -lossless input.png -o output.webp
🔍 常用参数说明
参数 | 含义 |
---|---|
-q <value> | 有损压缩质量(0-100),默认是 75 |
-lossless | 使用无损压缩(仅对 PNG、TIFF 等有效) |
-m <value> | 压缩方法(范围 0-6,数字越大压缩越慢但效果越好) |
-resize w h | 调整图片尺寸(宽高) |
-crop x y w h | 裁剪图像,从 (x,y) 开始裁剪 w×h 区域 |
-alpha_filter | 控制透明图像的处理方式,例如 best |
-metadata <type> | 保留原始图片中的元数据(例如 EXIF),可选项:none , all , icc , xmp 等 |
-preset <type> | 使用预设选项,有 default , photo , picture , drawing , icon , text |
📁 批量转换示例
将当前目录下所有 PNG 无损压缩为 WebP:
for img in *.png; do
cwebp -lossless "$img" -o "${img%.png}.webp"
done
有损压缩所有 JPG,压缩质量 85:
for img in *.jpg; do
cwebp -q 85 "$img" -o "${img%.jpg}.webp"
done
🧠 技术原理(简要)
WebP 使用:
- VP8 编码技术进行图像压缩(有损)
- LZ77 + 哈夫曼编码 + 色彩转换表 实现无损压缩(无损)
其目标是:在相似视觉质量下,生成更小的文件大小。Google 的测试表明,WebP 图像平均比 JPEG 小 25%-34%,而且支持透明度。
📈 使用建议
场景 | 推荐参数 |
---|---|
网站展示用图 | -q 75 -m 4 (兼顾质量与压缩速度) |
产品图、细节图 | -q 90 -m 6 (高质量) |
保留原始质量(无损) | -lossless -m 6 |
透明图标/图标图 | -lossless -m 4 -alpha_filter best |
批量生成缩略图 | -resize 300 300 -q 80 |
🚀 附加工具推荐
webpmux
:WebP 文件的元数据处理、拼图、动画合成。- 配合脚本:你可以用 Node.js、Python 等编程语言,调用
cwebp
做自动批量转换。
❓如果你遇到的问题:
- 文件太大压不动:加
-m 4
或-m 6
。 - 转换后图片变模糊:提高
-q
,使用-near_lossless
控制。 - 想保留 EXIF 或 ICC 信息:加
-metadata all