跳到主要内容
Tooletto

压缩 PNG

通过减少 PNG 图片中的颜色数量来压缩它——这与桌面端优化工具使用的技术相同。透明度会被保留,文件通常能缩小 40%–70%,全部过程都在你的浏览器中完成。

  • 文件永不离开你的设备
  • 免费,无需注册
  • 无水印
  • 加载后可离线使用
Loading tool…

如何压缩 PNG

  1. 1

    添加 PNG 图片

    将 PNG 文件拖到页面上、点击浏览选择,或直接从剪贴板粘贴。

  2. 2

    选择颜色数量

    256 色对大多数图形来说在视觉上是无损的。数值调低可以获得更小的文件。

  3. 3

    下载

    单独保存每张优化后的 PNG,或将整批打包为 ZIP 下载。

为什么一个无损格式依然能被压缩

PNG 精确存储每一个像素,所以它无法像 JPEG 那样舍弃细节。它能做的是利用重复性。每一行数据首先会经过一个滤波器,把像素编码为与相邻像素的差值,然后再用 DEFLATE 压缩——这与 ZIP 使用的算法相同。这两个阶段都偏爱可预测性:同样的字节模式重复出现得越频繁,文件就能压得越紧。

减少不同颜色的数量正是制造这种可预测性的手段。一张直接来自手机的截图可能包含四万种细微不同的色调,其中大部分只是肉眼无法察觉的单像素级差异。把这些颜色收拢成一套精心挑选的 256 色调色板,在视觉上几乎没有任何变化,却能让像素数据的重复性大幅提高,之后 DEFLATE 就能完成剩下的工作。容器始终保持无损;先被简化的是容器内部的图像。

这也是为什么 PNG 优化的效果会因内容而剧烈变化。一个只有八种平面色彩的 Logo 本身就已经接近调色板极限,几乎不会再缩小多少;而一张渐变丰富的 UI 截图,却可以在肉眼看不出任何变化的情况下缩小 60% 的体积。

如何选择颜色数量

合适的调色板大小完全取决于图像包含多少连续色调。平面图形能承受极端的颜色缩减,因为它们本来颜色就不多;而任何包含渐变、阴影或照片内容的图像都需要留出余量,否则就会出现色带——原本平滑的渐变会断裂成一道道可见的台阶。

抖动就是应对这个问题的手段。它把舍入误差分散到相邻像素上,让眼睛把这些像素重新"混合"成看起来平滑的渐变,而不是在调色板条目之间看到生硬的边界。它会让文件体积增加几个百分点,因为它让数据的重复性略微降低——但这正是这笔交易的本质:用一点体积换取渐变的连贯性。对照片类内容保留它,对平面图形则应该关闭,因为它在那里只会增加噪点。

256 色
对几乎所有内容(包括大多数截图)在视觉上都是无损的。不确定时的安全默认值。
128 色
在 Logo、图标和 UI 截图上肉眼无法分辨差异。文件体积大约减半。是网页素材的最佳默认值。
64 色
适合平面插画和图标。照片和渐变内容在这个级别即使开启抖动也会出现明显色带。

什么情况下不应该选择 PNG

PNG 经常被用在本不该使用它的图像上。一张以 PNG 保存的照片,通常比同一张以质量 85 保存的 JPEG 大出五到十倍,无论怎么缩减调色板都无法弥补这个差距——这个格式本来就不是为连续色调设计的。如果图像来自相机、又不需要透明度,转换格式带来的收益会远大于压缩本身。

反过来的错误同样常见。包含文字的截图、边缘锐利的 Logo 和线条图,无论用多高的质量保存为 JPEG 都会显得不佳,因为基于频率的变换会让锐利的边界变得模糊,并在文字周围留下光晕。这些内容应该用 PNG,往往体积还比 JPEG 更小,并且是像素级精确的。

保留 PNG 格式
Logo、图标、线条图、文字截图、图表,以及任何需要透明背景的内容。
转换为 JPG 或 WebP
照片,以及任何不需要透明度的全彩图像。节省幅度是成倍的,不是百分之几的差别。

常见问题

PNG 明明是无损格式,压缩是怎么起作用的?

PNG 容器本身依然保持无损——发生变化的是容器内部的图像。减少不同颜色的数量会让数据变得更有规律性,PNG 内置的 deflate 压缩算法随后就能把它压得更紧。这与 pngquant 和 TinyPNG 采用的方法是一致的。

透明度会被保留吗?

会的。Alpha 通道完全不受影响,完全透明的像素会被排除在调色板计算之外,不会拉偏调色板。Logo 和抠图图形都能保持边缘干净。

为什么节省的体积比 TinyPNG 给出的要小?

浏览器只能写出 32 位 PNG,而不是真正的 8 位调色板 PNG,所以我们能达到的效果大约是原生优化工具的一半。作为交换,你的文件永远不会离开你的设备,也没有每月使用限制。对 Logo 和平面图形来说差距很小;对照片来说差距会更大。

抖动(dithering)起什么作用?

它把舍入误差分散到相邻像素之间,让渐变保持平滑,而不是形成明显的色带。这会让文件体积增加几个百分点,但对照片和渐变内容来说是值得开启的——对于平面图形和截图,建议关闭它。

我应该用 PNG 吗?

对照片来说不应该——同等质量下 JPG 或 WebP 能小上好几倍。PNG 适合 Logo、图标、文字截图,以及任何需要透明度的场合。

压缩 PNG常见任务