Picovert

PNG压缩技术:无损压缩减小PNG文件大小

Picovert 团队2026-04-286 分钟阅读

以PNG格式保存的截图很容易达到2–5 MB,而同一图像以JPEG保存大约只有200 KB——视觉效果 完全相同,却有10–25倍的差距。这就是PNG格式的核心权衡:无损压缩精确存储每个像素,没有 任何近似或质量降低。理解PNG为什么大是在不牺牲质量的前提下减小文件的第一步。

PNG文件为何如此大

PNG专为无损存储而设计。每个像素值都被精确记录,这意味着压缩算法必须从压缩数据中逐位 重建原始图像。这种精确性带来了固有的大小代价:

  • 完整像素保真度 — 32位颜色(RGBA)的1920×1080图像有超过8 MB的 原始像素数据。PNG的Deflate压缩可以减少这个值,但无法达到JPEG的有损压缩比率。
  • Deflate压缩上限 — PNG使用与ZIP文件相同的Deflate算法。无损压缩 只利用冗余性——重复模式、平坦色彩区域。复杂的摄影内容几乎没有可压缩的冗余。
  • Alpha通道开销 — 透明度(第四个RGBA通道)每像素增加8位。 1920×1080的RGBA图像仅Alpha数据就占约2 MB。
  • 嵌入的元数据 — PNG文件可能包含EXIF数据、ICC颜色配置文件、 创建时间戳和软件注释——这些没有显示目的的数据经常占用5–100 KB。

无损PNG压缩

无损压缩工具使用更激进的Deflate设置、优化的过滤器选择和元数据剥离来重新编码PNG文件 ——不更改任何像素值。解码时输出文件与输入文件逐字节相同。典型节省:10–30%。

主要的无损PNG优化工具:

  • oxipng — 快速的多线程Rust实现。尝试多种压缩策略并选择最佳结果。 推荐用于批量处理。
  • pngcrush — 经典工具。尝试114种不同的压缩方法并使用最小的结果。 比oxipng慢,但被广泛支持。
  • Zopfli — Google的超压缩库。生成尽可能小的Deflate压缩输出, 但比标准工具慢100倍。非常适合不会更改的静态资产的一次性优化。

这些工具对任何PNG都是安全的——结果与原始图像在视觉上和数值上完全相同。需要像素完美 精度时这是正确的选择:医学图像、设计源文件、文档截图。

有损PNG压缩

有损PNG压缩在编码前对图像中的唯一颜色数量进行量化。pngquant推广的最广泛使用的技术 将32位RGBA PNG(最多1670万色)转换为8位索引颜色PNG(最多256色)。 典型节省:50–80%。

这听起来很激进,但智能抖动算法将颜色近似误差分散到相邻像素,让人眼感知到平滑的结果。 对于标志、图标、插图、UI截图和有大面积纯色区域的图形,视觉差异可以忽略不计。对于 照片或有微妙渐变的图像,在高压缩率下可能会出现轻微的色带。

  • 有损PNG适合:标志、图标、应用截图、网页UI图形、纯色插图。
  • 避免有损PNG的情况:照片、有渐变的图像、将进一步编辑的源文件。

颜色深度降低

PNG支持多种颜色模式。为图像选择正确的模式是在没有明显质量变化的情况下大幅减小文件 大小的简单方法:

  • 8位索引(调色板)PNG — 最多256色。最适合标志、图标、像素艺术、 插图和有纯色区域的图像。文件可能比24位等效文件小60–80%。大多数设计工具默认以 32位PNG导出,即使图像只使用32种颜色。
  • 24位RGB PNG — 1670万色,无透明度。最适合需要完整色彩空间的 照片和有复杂颜色渐变的图像。因为没有Alpha通道,所以比32位小。
  • 32位RGBA PNG — 1670万色加透明度。只有当图像有实际透明度时才需要。 许多导出的PNG即使每个像素都完全不透明也包含Alpha通道——移除它可以使文件大小减少 约25%。

评估PNG时请问:这张图像实际上有透明度吗?它使用超过256种不同颜色吗?如果两个答案 都是否,8位调色板PNG是合适的,文件会小得多。

Alpha通道优化

Alpha通道是PNG文件中最常被过度使用的功能。在保留32位RGBA PNG之前,请考虑:

  • 不需要透明度? — 将RGBA转换为RGB。这完全删除Alpha通道,在压缩 前将原始像素数据减少25%。放置在纯色背景上的网络图像几乎总是应该这样做。
  • 二值透明度? — 如果像素要么完全不透明要么完全透明(没有部分透明度), 考虑使用PNG的tRNS透明度块而不是完整的Alpha通道。这以调色板索引而不是每像素值 存储透明度。
  • 简化半透明边缘 — 针对已知背景色的抗锯齿边缘可以预先合成,完全 消除对Alpha的需求。例如,白色卡片上的标志可以导出为RGB而不是RGBA。
  • 根本没有透明度? — 转换为JPG。如果PNG没有透明度且包含照片, JPEG在同等视觉质量下会小得多。

何时从PNG切换到WebP或AVIF

对于网络使用,最有影响力的优化通常是完全切换格式。现代图像格式在相同视觉质量下 比PNG实现更好的压缩:

  • WebP无损 — 无损模式的Google WebP格式对同一图像平均比PNG小26%。 它还支持透明度。所有现代浏览器都支持。对于网络图形,将PNG转换为WebP无损几乎 总是有益的。
  • WebP有损 — 对于错误保存为PNG的照片,WebP有损在同等视觉质量下 比JPEG小25–34%。比尝试压缩照片PNG好得多。
  • AVIF — 最新格式。AVIF无损可以比PNG小50%。在前沿优化方面表现 出色。浏览器支持强大(Chrome、Firefox、Safari 16+),但比WebP稍窄。

使用Picovert的图片转换器无需安装任何软件即可将PNG文件 转换为WebP或AVIF。转换完全在您的浏览器中运行。

在线PNG压缩工具

无需安装软件,快速压缩PNG,Picovert的 图片压缩工具直接在浏览器中处理PNG文件。拖放一个或多个 PNG文件,立即下载压缩后的版本。无需账号,文件不会上传到任何服务器——所有处理都在 本地进行。

压缩工具应用无损优化:元数据剥离、优化的Deflate重新编码、未使用块移除。对于大多数 PNG图形,在视觉质量零变化的情况下生成小15–40%的文件。

命令行工具

对于自动化工作流和批量处理,命令行工具提供精细控制:

  • pngquant (有损,50–80%减小)
    pngquant --quality=65-80 *.png
    处理当前目录中的所有PNG。--quality标志设置可接受的质量范围(0–100)。 较低的值会通过更多颜色减少生成更小的文件。输出文件默认命名为 原始文件名-fs8.png
  • oxipng (无损,10–30%减小)
    oxipng -o 6 *.png
    -o 6标志设置优化级别(0–6,6为最大压缩)。更高级别需要更长时间但 生成更小的文件。使用--strip all同时移除元数据。
  • 组合使用:先运行pngquant(有损量化),然后运行oxipng(对量化 输出进行无损重新压缩)。这叠加两种节省,通常实现60–75%的总体减小。

PNG压缩决策树

不确定使用哪种技术?按照这个决策流程:

  1. 图像包含照片或复杂渐变吗? — 是:转换为JPEG(不需要透明度)或WebP。 PNG对照片来说是错误的格式。否:继续。
  2. 用于网络吗? — 是:转换为WebP无损(或AVIF以获得最大压缩)。 两种格式都支持透明度并且比PNG压缩更好。否:继续。
  3. 图像有透明度吗? — 否:将RGBA转换为RGB(如果是照片也可以转为JPEG)。 是:继续。
  4. 图像使用超过256种颜色吗? — 否:使用8位调色板PNG(用pngquant 进行有损量化)。是:使用有无损优化的24位或32位PNG。
  5. 需要像素完美精度时 — 使用无损优化(oxipng、pngcrush)并剥离 元数据。期望节省10–30%。

对于大多数网络和共享使用场景,从Picovert的 免费PNG压缩工具开始——它自动处理无损优化,几秒内 提供结果,无需安装任何软件。当您需要更深层次的节省或格式转换时,图片转换器和上面的命令行方法可以满足您的需求。