一张表看懂两种 PNG
| 维度 | PNG-8(索引色) | PNG-32(真彩色) |
|---|---|---|
| 颜色数 | 最多 256 色(调色板) | 约 1677 万色 |
| 透明 | 支持,但仅全透明/不透明(可模拟半透明边缘) | 支持完整 256 级半透明 |
| 体积 | 小(同内容常为 PNG-32 的 20%-40%) | 大 |
| 适合内容 | 图标、Logo、截图、扁平插画 | 照片、渐变丰富的图 |
PNG-8 为什么小这么多
PNG-32 每个像素存 4 个字节(红绿蓝 + 透明度)。PNG-8 只存一张 256 色的调色板,每个像素只存 1 个字节的调色板索引——光数据结构就少了四分之三,再叠加 PNG 的 DEFLATE 压缩,体积差距进一步拉大。
把 PNG-32 转成 PNG-8 的过程叫调色板量化:算法(如 libimagequant)分析全图颜色,挑出最具代表性的 256 色,再把每个像素映射到最近似色。配合抖动(dithering)用相邻像素的颜色交错模拟中间色,人眼在正常距离看不出渐变断层。
什么时候可以放心转 PNG-8
- 截图、UI 界面:颜色种类本来就少,256 色通常装得下,肉眼无损
- 图标与 Logo:扁平化设计用色有限,是 PNG-8 的理想对象
- 带透明的产品图:PNG-8 的透明索引模式可保留边缘平滑的透明效果
- 照片慎用:1677 万色压到 256 色,天空与皮肤会出现可见色带
TinyPNG 类工具的「魔法」就是这个
在线 PNG 压缩工具声称「减小 70% 且几乎无损」,核心技术就是 PNG-32 → PNG-8 的调色板量化。Pixvise 的 PNG 压缩同样使用 libimagequant 量化引擎,画质滑块控制调色板颜色数(2-256 色)与量化质量:画质越高,调色板越大、越保真。
如果一张 PNG 压完后出现色带,说明它的颜色丰富度超出了 256 色的表达能力——这时更好的选择是转成有损 WebP,既能大幅缩小又不受 256 色限制。
上传 PNG 体验调色板量化压缩
压缩 PNG 图片