同一张图,存成 PNG 是 2MB,转成 JPG 只剩 200KB,再转 WebP 可能不到 150KB。差距从哪来?关键不是"哪个格式更好",而是你的图是什么内容、要给谁用。搞懂压缩到底压掉了什么,就能不靠猜地选对格式。

压缩分两种:有损和无损
先建立最重要的分界:图片压缩分有损和无损两类,它们的取舍完全不同。
- 无损压缩:还原后和原图逐像素一致,一个字节不差。靠的是找规律编码(如游程、字典),对大片相同色块特别有效。PNG、WebP 无损、GIF 属此类。
- 有损压缩:主动丢弃人眼不敏感的信息换体积,无法完全还原。对色彩连续的照片效果惊人。JPG、WebP 有损、AVIF 属此类。
一句话抓住本质:无损擅长"规律性强"的图(截图、图标、纯色),有损擅长"色彩连续"的图(照片、渐变)。 选格式的第一刀,就是先判断你的图属于哪一类。
有损为什么对照片特别有效?
因为照片的色彩是连续平滑变化的,而人眼对细微的颜色/亮度变化不敏感。JPG 的做法是把图切成 8×8 小块,对每块做 DCT 频率变换,再量化掉人眼看不出的高频细节——丢掉的正是你本来就察觉不到的部分,所以体积大降而观感几乎不变。
但这套对照片有效的逻辑,遇到文字、线条、纯色边界就翻车:这些内容是"高频突变"(黑字白底的边缘),量化会在边界周围产生振铃和块状伪影,也就是常说的"脏边"。这解释了一个高频踩坑:把文字截图存成 JPG 会糊、会脏,而存成 PNG 干净又不一定更大。
透明、动画这些附加能力
除了压缩方式,格式还差在支持哪些能力,这往往是硬性约束:
| 能力 | JPG | PNG | WebP | AVIF | GIF |
|---|---|---|---|---|---|
| 有损压缩 | ✓ | ✗ | ✓ | ✓ | ✗ |
| 无损压缩 | ✗ | ✓ | ✓ | ✓ | ✓(256色) |
| 透明通道 | ✗ | ✓ | ✓ | ✓ | ✓(1bit) |
| 动画 | ✗ | ✗ | ✓ | ✓ | ✓ |
| 兼容性 | 极广 | 极广 | 好 | 一般 | 极广 |
几条直接的结论:要透明背景就别用 JPG(它根本不支持);要做动图,WebP/AVIF 比 GIF 体积小画质好;但要最大兼容性(任何老设备、任何软件都能开),JPG/PNG 仍是最稳的。
WebP、AVIF 到底强多少?
WebP 和 AVIF 是"新一代"格式,优势是同画质下更小、且有损无损透明动画通吃。粗略地说:
- WebP:同等画质比 JPG 小约 25%–35%,无损模式比 PNG 也常更小。浏览器兼容性如今已经很好,是网页配图的稳妥默认。
- AVIF:压缩率比 WebP 更高,尤其低码率下画质更好。代价是编码较慢、老环境兼容性还不够、解码开销略大。
它们不是没有代价:越新的格式,编码越慢、越可能在某些老软件/系统里打不开。所以"要不要换"取决于用在哪——网页可以放心上 WebP,发给别人的文件还是兼容性优先。
一张表直接照着选
把内容类型和用途对齐,选择就不用纠结:
| 你的图是 | 用途 | 推荐格式 |
|---|---|---|
| 照片、渐变、色彩丰富 | 网页 | WebP(兼容兜底 JPG) |
| 照片 | 发文件/最大兼容 | JPG |
| 截图、文字、UI、线条 | 任意 | PNG 或 WebP 无损 |
| 需要透明背景 | 任意 | PNG / WebP / AVIF |
| 图标、Logo(矢量可得时) | 网页 | SVG(非位图,最清晰最小) |
| 动图 | 网页 | WebP/AVIF;兼容用 GIF |
| 极致体积、可控环境 | 网页 | AVIF |
补一句常被忽略的:矢量图(图标、Logo)能拿到 SVG 就别转位图——它是数学描述的曲线,任意缩放都清晰、体积还小,根本不参与 JPG/PNG 这套位图压缩的讨论。