什么是 cwebp

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

发表评论