← 返回博客

如何将 WebP 图片转换为 PNG

2026-04-07 · 5 分钟阅读

← 返回博客

如何将 WebP 图片转换为 PNG

· 5 分钟阅读

为什么需要将 WebP 转为 PNG

虽然 WebP 在现代浏览器中已被广泛支持,但在某些场景下,你仍然需要将 WebP 图片转换为 PNG 或 JPG:旧版图片编辑软件(如未安装插件的旧版 Photoshop)无法打开 WebP 文件;在 Microsoft Office、Google Docs 等文档工具中插入图片时,PNG 和 JPG 的兼容性更好;需要将图片发送给使用旧系统的客户或同事;打印服务通常不接受 WebP 格式;某些 CMS 或电商平台不支持 WebP 上传。

方法1:使用在线工具

最简单的方法是使用在线图片转换工具。上传 WebP 文件,选择输出格式为 PNG(或 JPG),点击转换并下载结果。整个过程在浏览器中完成,无需安装软件,适合偶尔转换的场景。在线工具通常会保留原图的透明度信息(如果 WebP 带有透明通道),这在转为 PNG 时是完整保留的。

方法2:在浏览器中直接保存

如果你在网页上看到了一张 WebP 图片,最快的转换方法是:在 Chrome 中右键图片,选择"在新标签页中打开图片",然后在新标签页中再次右键,选择"另存为"。在 Windows 系统上,Chrome 保存的图片通常会自动保存为 WebP 格式(.webp 扩展名);在 macOS 上,Safari 通常会自动转换为 PNG 或 JPG。

// 在浏览器 Console 中将 WebP 转换为 PNG Data URL
// Convert WebP to PNG Data URL in browser Console
function webpToPng(imgElement) {
  const canvas = document.createElement('canvas');
  canvas.width = imgElement.naturalWidth;
  canvas.height = imgElement.naturalHeight;
  const ctx = canvas.getContext('2d');
  ctx.drawImage(imgElement, 0, 0);
  return canvas.toDataURL('image/png');
}

// 使用示例 / Usage
const img = document.querySelector('img');
const pngDataUrl = webpToPng(img);
// 创建下载链接 / Create download link
const a = document.createElement('a');
a.href = pngDataUrl;
a.download = 'converted.png';
a.click();

方法3:命令行工具

# 使用 dwebp(libwebp 工具集中的解码器)
# Using dwebp (decoder from libwebp tools)
# 安装 / Install: brew install webp

# WebP 转 PNG / WebP to PNG
dwebp input.webp -o output.png

# 批量转换 / Batch convert
for f in *.webp; do
  dwebp "$f" -o "${f%.webp}.png"
done

# 使用 ImageMagick / Using ImageMagick
convert input.webp output.png
convert input.webp output.jpg

# 批量转换 / Batch conversion
for f in *.webp; do convert "$f" "${f%.webp}.png"; done

# Python Pillow 方式 / Python Pillow approach
from PIL import Image

def webp_to_png(input_path, output_path=None):
    if output_path is None:
        output_path = input_path.replace('.webp', '.png')
    with Image.open(input_path) as img:
        img.save(output_path, 'PNG', optimize=True)

webp_to_png('image.webp')

处理带透明度的 WebP

如果 WebP 图片包含透明度(Alpha 通道),转换为 PNG 时会完整保留透明度信息,因为 PNG 原生支持 Alpha 通道。但如果转换为 JPG,透明区域会被填充为白色(或其他指定颜色),因为 JPG 不支持透明度。这是 WebP 转换时的一个重要考量点。

在转换前,可以通过文件头部信息或工具的信息面板查看 WebP 是否包含透明度。带透明度的 WebP 文件头中有 "VP8L"(无损)或 "VP8X"(扩展,可能含透明度)标识。如果不确定,直接转为 PNG 是最安全的选择,不会丢失任何信息。

WebP 转 PNG 后的文件大小

将 WebP 转换为 PNG 通常会导致文件显著变大。这不是转换工具的问题,而是两种格式压缩效率的差异所致:WebP 使用更先进的压缩算法,PNG 的 DEFLATE 压缩相对没那么高效。典型情况下,WebP 转 PNG 后文件大小增加 20–50%(取决于图片内容)。

批量转换 WebP 文件

如果需要批量转换多个 WebP 文件,命令行工具比在线工具更高效。在 macOS/Linux 上,结合 dwebp 和 Shell 脚本可以高效处理整个目录;在 Windows 上,可以使用 PowerShell 脚本配合 ImageMagick 完成批量转换。对于需要定期转换的场景,Python 脚本是最灵活的选择,可以集成到自动化工作流中。

在不同操作系统上打开 WebP 文件

在 macOS(12 Monterey 及以上),系统默认支持打开 WebP 文件(通过预览应用)。在 Windows 10 及以上,将 WebP 关联到 Microsoft Edge 或安装 WebP 编解码器扩展(Microsoft Store 中提供)可以直接在照片应用中查看 WebP。在 Linux 上,大多数现代图片查看器(如 eog)已支持 WebP。如果系统不支持 WebP,最简单的解决方案是用 Chrome 或 Firefox 浏览器打开 WebP 文件(直接拖放到浏览器窗口)。

立即尝试在线工具,无需安装,免费使用。

打开工具 →

立即免费使用相关工具

免费使用 →