如何在图片格式之间转换(PNG、JPG、WebP、AVIF)
选错格式会浪费带宽或损失质量。WebP 80 KB 能完成的工作,PNG 却占了 400 KB。用 JPG 代替 PNG 导致透明度丢失。以下是格式转换方法,以及什么时候该选哪种格式。
在浏览器中
将图片拖入图片格式转换器,选择目标格式和质量,然后下载。所有处理在客户端完成——文件不会离开你的设备。支持的转换:PNG ↔ JPG、PNG ↔ WebP、JPG ↔ WebP、BMP → JPG/PNG、任意格式 → AVIF。
各格式的适用场景
| 格式 | 最适合 | 透明度 | 有损 | 相对 JPG 的大小 |
|---|---|---|---|---|
| JPG | 照片、渐变 | 否 | 是 | 基准 |
| PNG | 截图、Logo、UI | 是 | 否 | 更大 |
| WebP | Web 图片(所有类型) | 是 | 两者均可 | 小约 30% |
| AVIF | 现代 Web、高压缩 | 是 | 两者均可 | 小约 50% |
| BMP | Windows 传统格式、原始像素 | 是 | 否 | 大得多 |
WebP 是新 Web 项目的安全默认选择——自 2020 年起获得广泛浏览器支持,压缩比优于 JPG,且完全支持透明度。AVIF 更进一步,但需要 Safari 16+ 和 Chrome 85+。
Python:Pillow
from PIL import Image
# PNG 转 JPG(必须先去掉 alpha 通道)
with Image.open('image.png') as img:
img.convert('RGB').save('image.jpg', quality=85)
# JPG 转 WebP
with Image.open('image.jpg') as img:
img.save('image.webp', quality=80)
# WebP 转 PNG
with Image.open('image.webp') as img:
img.save('image.png')
PNG 有 alpha 通道;JPG 没有。.convert('RGB') 将透明度平铺为白色再保存为 JPG。不加这一步,Pillow 会报错。
# 批量将文件夹中的 JPG 转换为 WebP
from pathlib import Path
from PIL import Image
for f in Path('images/').glob('*.jpg'):
with Image.open(f) as img:
out = f.with_suffix('.webp')
img.save(out, quality=80)
print(f'{f.name} → {out.name}')
ImageMagick
# 单个转换
convert image.png image.jpg
convert image.jpg -quality 85 image.webp
convert image.png -quality 80 image.avif
# PNG 转 JPG——将透明度平铺到白色背景
convert image.png -background white -flatten image.jpg
# 批量将所有 PNG 转换为 WebP
mogrify -format webp -quality 80 *.png
# 查看任意文件的格式和尺寸
identify image.webp
质量设置
| 质量 | 文件大小 | 肉眼差异 |
|---|---|---|
| 95 | 大 | 无 |
| 85 | 中 | 绝大多数图片无差异 |
| 75 | 小 | 硬边缘处略有压缩痕迹 |
| 60 | 很小 | 明显压缩 |
JPG 和 WebP 的正确默认值是 85。缩略图可以降到 75。产品图或作品集图保持 85 以上。
透明度与格式兼容性
三种会破坏结果的场景:
JPG 去掉透明度。 将带透明背景的 PNG Logo 转为 JPG,透明区域变成白色(或黑色)。需要透明背景时,使用 WebP 或 PNG。
BMP 未压缩。 1920×1080 的 BMP 约 6 MB。转为 PNG 无损约 1 MB,转为照片 JPG 约 300 KB。
AVIF 编码慢。 AVIF 文件最小,但编码时间明显长于 WebP 或 JPG。适合离线构建管道,不适合实时处理。
要点总结
- 新 Web 项目用 WebP——比 JPG 小约 30%,支持透明度,2020 年起浏览器全面支持。
- Pillow 中 PNG 转 JPG 前务必加
.convert('RGB'),干净去除 alpha 通道。 mogrify(ImageMagick)一条命令批量转换整个文件夹。- JPG 和 WebP 的正确默认质量是 85;仅缩略图才降低。
- AVIF 压缩比最好但编码慢——用于离线管道,不用于实时处理。