← 返回博客

WebP 图片压缩工具推荐:按你要做的事来选

同样是「压缩 WebP」,不同的人想做的事完全不一样: 有人是想把一堆 JPG、PNG 转成 WebP;有人是手里已经有 WebP,想再压小一点;还有人要处理的是会动的 WebP。 工具没有绝对的好坏,只有适不适合。这篇文章按场景来推荐,每个场景只给最顺手的一两个。 开始之前:两分钟了解 WebP…

分享

同样是「压缩 WebP」,不同的人想做的事完全不一样:
有人是想把一堆 JPG、PNG 转成 WebP;有人是手里已经有 WebP,想再压小一点;还有人要处理的是会动的 WebP。
工具没有绝对的好坏,只有适不适合。这篇文章按场景来推荐,每个场景只给最顺手的一两个。


开始之前:两分钟了解 WebP

WebP 其实有三种形态:

  • 有损 WebP:原理类似 JPEG,按质量参数丢弃细节,体积小,适合照片、Banner。
  • 无损 WebP:原理类似 PNG,像素完全不变,适合截图、UI 素材。
  • 动态 WebP:多帧动画,可以有损也可以无损,常见于从 GIF 转换来的表情包和演示动图。

不确定手里是哪种,用 Google 官方的 webpinfo 看一眼:

bash 复制代码
brew install webp
webpinfo image.webp

输出里有 VP8 是有损,VP8L 是无损,有 ANIM / ANMF 就是动图。

还有一件事值得先知道:有损 WebP 用更高的质量参数重新编码,体积会变大,画质却不会变好——丢掉的细节回不来。所以对已经是 WebP 的图,好的压缩工具应该能判断「压不动就不压」。


场景一:把 JPG / PNG 批量转成 WebP

这是大多数人第一次接触 WebP 时要做的事。

图形界面选 XnConvert。 免费、跨平台,可以一次拖进一批图,设置 WebP 的质量或无损模式,顺带改尺寸、改文件名。转格式这件事,它是最省心的。

写进构建流程选 cwebp 或 sharp。 网站项目里,与其手动转,不如在打包或上传 CDN 时自动处理:

bash 复制代码
# cwebp:质量 75,最慢最省的编码方式,保留颜色配置文件
cwebp -q 75 -m 6 -metadata icc input.jpg -o output.webp
js 复制代码
// sharp(Node.js)
await sharp('input.jpg').webp({ quality: 75, effort: 6 }).toFile('output.webp')

拿不准参数?先用 Squoosh 试。 Google 的在线工具,一次处理一张,但可以左右分屏、实时拖动质量看效果。摸清楚「这类图用多少质量合适」,再把参数填进上面的批量工具。

场景二:已经是 WebP,想再压小一点

网站早就换成了 WebP,Lighthouse 还是提示「图片可以进一步压缩」;或者素材目录里一堆 WebP,占着空间。这时候需要的不是转格式,而是在原地把现有文件变小。

Mac 用户:ImgZilla

ImgZilla 是我们做的 macOS 图片压缩工具,这个场景正是它最擅长的:

  • 原地压缩,路径不变。banner.webp 压完还是 banner.webp,网页、代码、文档里的引用一行都不用改。
  • 整个文件夹拖进去。递归扫描所有子目录,自动跳过隐藏文件和 node_modules;WebP 和 JPG、PNG、GIF、AVIF、HEIC、SVG 混在一起也能一次处理完。
  • 不用调参数。使用 Google libwebp 编码,质量 75、编码努力程度 4,与 Squoosh 默认参数一致;透明通道以最高质量保留,透明背景不会出现毛边。
  • 压不动的不硬压。重新编码后如果没有变小(压缩率不足 0.4%),就标为「已最小」并保留原文件,不会把更大的文件交给你,也不扣免费额度。
  • 可以反悔。原图默认移入废纸篓,觉得哪张不满意,右键「放回原处」即可。
  • 全程本地运行,素材不上传任何服务器。

👉 在 Mac App Store 下载 ImgZilla

其他平台:Caesium 或 TinyPNG

  • Caesium Image Compressor:开源免费,Windows、macOS、Linux 都能用,支持 WebP 批量压缩,可以设置质量和是否保留元数据。
  • TinyPNG:网页工具,同样支持 WebP。拖进去就行,但免费版有张数和大小限制,图片要上传到对方服务器。

场景三:动态 WebP

动图分两种需求:

把 GIF 转成动态 WebP:用 Google 官方的 gif2webp(与 cwebp 同在 libwebp 工具包里,Mac 上 brew install webp 即可)。同样的动画,动态 WebP 通常比 GIF 小很多。

bash 复制代码
gif2webp -q 75 -m 6 input.gif -o output.webp

已有的动态 WebP 想再压小:很多工具遇到动图会直接报错,或者只保留第一帧。ImgZilla 支持动态 WebP 的再压缩——逐帧重新编码,帧数、每帧时长、循环次数、画布尺寸都保持不变,动画还是原来的动画,只是文件更小。和静态图一样,压不动的会标为「已最小」并保留原文件。

场景四:必须像素不变

UI 切图要和设计稿严格一致、截图要做像素级比对、素材之后还要继续编辑——这些情况需要无损。

用 cwebp:

bash 复制代码
# 纯无损
cwebp -lossless -z 9 input.png -o output.webp

# 近无损:像素有极微小变化,但比纯无损小不少,适合截图和 UI
cwebp -near_lossless 60 input.png -o output.webp

注意:ImgZilla 对 WebP 统一使用有损编码,包括原本是无损的 WebP。体积通常会明显变小,但像素不再逐一相同。另外它会去掉 WebP 里的元数据(包括颜色配置文件),普通 sRGB 图片不受影响,带 Display P3 等广色域配置的图在色彩管理软件里颜色可能略有差异。对像素和颜色有严格要求的图,请用 cwebp,或者压缩前先挑出来。


一张表总结

你要做的事 推荐 备选
把 JPG / PNG 批量转成 WebP XnConvert cwebp、sharp(构建流程)
试参数、单张处理 Squoosh —
已有 WebP 原地再压小(Mac) ImgZilla Caesium
已有 WebP 再压小(Windows / Linux) Caesium TinyPNG
GIF 转动态 WebP gif2webp —
已有动态 WebP 再压小 ImgZilla 自行用 libwebp 写脚本
必须像素不变 cwebp -lossless / -near_lossless —

下载链接

工具 平台 价格 下载
ImgZilla macOS 12.3+ 免费版每天 10 张 Mac App Store
XnConvert Windows / macOS / Linux 个人免费 xnview.com
Caesium Image Compressor Windows / macOS / Linux 免费开源 saerasoft.com
cwebp / gif2webp / webpinfo 命令行 免费开源 Google 官方下载,Mac:brew install webp
sharp Node.js 免费开源 sharp.pixelplumbing.com,npm install sharp
Squoosh 网页 免费 squoosh.app
TinyPNG 网页 免费版有限额 tinypng.com

最后

WebP 本身已经是很高效的格式。如果你的 WebP 是 CDN 或构建工具用合理参数生成的,再压的空间可能不大,看到「已最小」是正常的;真正省得多的,往往是那些用高质量参数导出、从 PNG 无损转换来、或者从 GIF 直接转出来没再处理过的文件。

先用 webpinfo 看清楚手里是什么,再按场景挑工具,比在十个工具之间来回试要省时间得多。

ImgZilla 目前仅支持 macOS(12.3 及以上),可在 Mac App Store 下载。免费版每天可压缩 10 张,只有压缩成功才计入额度——把装满 WebP 的文件夹拖进去,看看能省下多少。

想让图片更小更快?

下载 ImgZilla,在本机完成压缩,图片不上传云端。