如何将 WebP 图片转换为 PNG
← 返回博客
如何将 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 文件(直接拖放到浏览器窗口)。
立即尝试在线工具,无需安装,免费使用。
打开工具 →
立即免费使用相关工具
免费使用 →