文章
命令行 WebP 转 PNG:Windows、Mac 和 Linux 方法大全
用命令行把 WebP 转成 PNG,涵盖 dwebp、ImageMagick 和 ffmpeg 在 Windows、macOS、Linux 上的用法,附批量转换脚本,以及何时该改用免安装的浏览器转换工具。
如果你经常从网上保存图片,大概率会遇到一堆 .webp 文件——老旧软件、邮件客户端或设计工具经常打不开它。把它们转成 PNG 就能解决兼容性问题,而用命令行来做还能顺便实现批量自动化。
本指南覆盖 Windows、macOS、Linux 上所有可靠的 WebP 转 PNG 命令行方法,并说明什么时候用一个免安装的浏览器转换器反而更快。
值得了解的三款命令行工具
命令行图片工具有很多,但真正适合 WebP 转 PNG 的只有三款:
dwebp—— Google 官方的 WebP 解码器,属于libwebp包。由格式作者亲自开发,精度最高,输出无损 PNG。- ImageMagick(
magick) —— 通用图片处理套件,支持上百种格式。当你还想同时缩放、重命名或批量处理时特别好用。 ffmpeg—— 以视频处理闻名,但同样能解码 WebP、输出 PNG。如果你本就装了它来处理多媒体,顺手就能用。
三款工具都会保留 alpha(透明度)通道,所以透明 WebP 转换后依旧透明。
Linux / Ubuntu 上 WebP 转 PNG
大多数发行版默认不自带 WebP 解码器。先安装上面的任一工具,再执行一条命令即可。
使用 dwebp(libwebp)
# Ubuntu / Debian
sudo apt update && sudo apt install webp
# Fedora
sudo dnf install libwebp-tools
# Arch
sudo pacman -S libwebp
然后转换:
dwebp input.webp -o output.png
dwebp 会逐像素解码 WebP,写入无损 PNG。如果源文件本身是无损 WebP,得到的 PNG 与原文件完全一致。
使用 ImageMagick
sudo apt install imagemagick
magick input.webp output.png
在较老的系统上,ImageMagick v6 用的是
convert命令(convert input.webp output.png)。v7 把所有功能统一到了magick之下。
使用 ffmpeg
ffmpeg -i input.webp output.png
想了解更多 Linux 专属选项和图形界面方法,参见我们的 Linux 上 WebP 转 PNG 指南。
macOS 上 WebP 转 PNG
在 Mac 上最快的方式是用 Homebrew:
# 按需安装(任选其一)
brew install webp # 提供 dwebp
brew install imagemagick # 提供 magick
brew install ffmpeg # 提供 ffmpeg
之后的命令和 Linux 完全一样:
dwebp input.webp -o output.png
# 或
magick input.webp output.png
# 或
ffmpeg -i input.webp output.png
不想碰终端的 Mac 用户,可以看我们的 Mac 上 WebP 转 PNG 指南,里面有拖拽转换的图文步骤。
Windows 上 WebP 转 PNG
Windows 有两条路:原生命令行工具,或 PowerShell。
安装解码器
# 用 winget 安装 ImageMagick
winget install ImageMagick.ImageMagick
# 或者下载 Google 的 libwebp(developers.google.com/speed/webp)
# 解压后把文件夹加进系统 PATH
单文件转换(PowerShell 或命令提示符)
magick input.webp output.png
# 或(libwebp 已加入 PATH)
dwebp input.webp -o output.png
更多 Windows 方法(包括系统自带的画图),参见 Windows 上 WebP 转 PNG。
批量转换大量 WebP 文件
这正是命令行真正胜过手动浏览器操作的地方。如果某个文件夹里有几十个 WebP 图片,一行循环命令就能全部转换。
用 ImageMagick mogrify 批量(全平台通用)
magick mogrify -format png *.webp
mogrify 会读取当前文件夹下所有 .webp,并在旁边生成对应的 .png,原文件保留不变。
用 dwebp 批量(Linux / macOS)
for f in *.webp; do dwebp "$f" -o "${f%.webp}.png"; done
用 PowerShell 批量(Windows)
Get-ChildItem -Filter *.webp | ForEach-Object {
magick $_.FullName ($_.BaseName + ".png")
}
命令行转换会损失画质吗?
不会。三款工具都是先解码 WebP,再把像素重新编码为 PNG(无损格式)。输出结果与 WebP 解码器产出的像素逐位一致,没有代际损失。关于 PNG 为何能保持画质,完整解释见我们的 WebP 转 PNG 不损画质 指南。
透明区域同样会被保留——alpha 通道直接复制过去。如果你的图片需要保留透明度,可参考我们的透明背景转换指南。
什么时候该放弃终端、改用浏览器工具
命令行在批量任务和自动化方面无可匹敌。但如果只是转一两张图,为了它去装一个包、记一串语法就太费事了。浏览器转换器不需要安装、不用改 PATH、不用开终端——打开网页,拖入文件,下载 PNG 即可。
FreePNGConvert 正是为此而生。转换全程在你的浏览器里通过 Canvas API 完成,文件从不离开你的设备,免费且无文件数量限制。关于隐私优势和离线浏览器工具的对比,参见我们的 WebP 转 PNG 离线指南。
| 场景 | 最佳选择 |
|---|---|
| 转 1–3 张图,不想安装任何东西 | 浏览器工具(freepngconvert.com) |
| 转一个文件夹里 50+ 个 WebP | magick mogrify -format png *.webp |
| 脚本 / CI 流水线 | dwebp 或 magick |
| 没有图形界面的服务器 | dwebp(依赖最小) |
常见问题
哪款命令行工具输出的 PNG 最干净、最小?
dwebp 最忠实,因为它是 Google 官方解码器。ImageMagick 和 ffmpeg 输出的画面几乎完全相同,但可能附带略微不同的 PNG 元数据。对网页用途来说差异可以忽略。
不装任何东西也能把 WebP 转成 PNG 吗?
可以。像 FreePNGConvert 这样的浏览器工具无需安装——转换在浏览器里完成。如果需要反复或批量使用,本地命令行工具更方便。
这些命令会保留透明度吗?
会。dwebp、magick 和 ffmpeg 都会保留 alpha 通道,WebP 里的透明区域在 PNG 中依旧透明。
动态 WebP 怎么办?
静态 WebP 用三款工具都能干净转换。动态 WebP 则不同——每款工具提取帧的方式不一样,而且一张 PNG 只能存一帧。动态源文件通常更适合导出为 GIF 或雪碧图。
浏览器方法和命令行一样准吗?
功能上一样。浏览器的 Canvas API 会逐像素解码 WebP,得到的像素数据和 dwebp 产出的一致,两者都是无损 PNG。更多对比参见我们的 WebP 与 PNG 画质对比。
最后更新:2026-06-15