文件格式
什么是 PNG?无损压缩与透明背景
PNG 是一种无损图片格式,能精确保留每一个像素,并支持完整的透明度。本文介绍它如何诞生于 GIF 专利之争、压缩原理是什么,以及什么时候该用它。
作者: Hemen Dönüştür Editör Ekibi发布日期: 阅读约 7 分钟

PNG(Portable Network Graphics,便携式网络图形)是一种在不损失任何细节的情况下保存图片、并支持完整透明度的图片格式。它已成为屏幕截图、标志、图标和界面图形的标准格式。本文将介绍 PNG 诞生的原因、它的压缩原理、它为什么有时会生成非常大的文件,以及转换 PNG 图片的实用技巧。
PNG 的诞生:GIF 与 LZW 专利
20 世纪 90 年代初,网页上的大多数图形都是 GIF,而 GIF 使用的 LZW 压缩算法是 Unisys 公司的专利。根据 Greg Roelofs 撰写的格式史,CompuServe 与 Unisys 之间的许可协议于 1994 年 12 月 28 日被低调公布,这意味着写入 GIF 文件的软件可能要支付许可费。在 Usenet 上引发强烈反响之后,Thomas Boutell 于 1995 年 1 月 4 日发布了一种无专利格式的第一份草案,当时名为“PBF”。“PNG”这个名称于 1 月 6 日被提出,并在 1995 年 1 月 23 日的第 5 版草案中被采纳。规范于 1995 年 3 月 7 日随第 9 版草案定稿。
W3C 于 1996 年 10 月 1 日将 PNG 发布为推荐标准;据美国国会图书馆介绍,相同的文本于 1997 年 1 月由 IETF 以 RFC 2083 发布。纳入勘误的第二版于 2003 年 11 月 10 日发布,并成为国际标准 ISO/IEC 15948。2025 年 6 月 24 日发布的 W3C PNG 第三版,把动画 PNG(APNG)、用于 HDR 信号的 cICP 块以及用于 EXIF 数据的 eXIf 块纳入了正式规范。
PNG 压缩的工作原理
PNG 是无损的:打开文件时得到的像素与保存时的像素逐位一致。文件通过两个阶段变小。
1. 行过滤器
在压缩之前,每一行像素都要经过一个过滤器。过滤器保存的不是像素值本身,而是它与相邻像素的差值;在平坦或平滑的区域,这些差值接近于零,因此压缩效果好得多。规范定义了五种过滤器类型:None(无)、Sub(左侧像素)、Up(上方像素)、Average(左侧与上方的平均值)和 Paeth(根据左侧、上方和左上方像素做出的预测)。编码器可以为每一行选择不同的过滤器。
2. DEFLATE
过滤后的数据使用 DEFLATE(与 ZIP 文件相同的算法)压缩,并以 zlib 格式存储在 IDAT 块中。这是规范定义的唯一压缩方法,使用最大 32 KB 的滑动窗口。不同的程序从同一张图片生成的 PNG 大小各不相同,是因为它们在过滤器选择和 DEFLATE 设置上投入的计算量不同;图片本身完全一样。
块结构
PNG 文件以 8 字节的签名开头,后面是一系列块:IHDR 是文件头,IDAT 是图像数据,IEND 表示文件结束。可选的块可以保存颜色配置文件(iCCP)、伽马值(gAMA)、文本(tEXt、iTXt)和简单透明度(tRNS)。
颜色类型、位深与透明度
PNG 支持灰度、调色板(索引色)和真彩色图像。据美国国会图书馆介绍,采样深度从 1 位到 16 位不等;典型的 RGB 图像每通道使用 8 位(24 位),需要时可使用每通道 16 位(48 位)。可选的 alpha 通道为每个像素保存一个独立的透明度值。这比 GIF 简单的“透明或不透明”灵活得多:阴影、柔和的边缘和半透明图层都能正确显示。
可选的 Adam7 隔行扫描能让图片在加载时先粗略显示、再逐渐变清晰,但通常会让文件变大。
调色板 PNG 与减色
在调色板(索引色)PNG 中,每个像素保存的是指向最多 256 色调色板的索引,而不是颜色本身。颜色较少的标志、图标和扁平插画用这种方式可以得到非常小的文件。调色板 PNG 还可以通过 tRNS 块为调色板条目分别设置透明度,因此与 GIF 不同,它可以有半透明的调色板颜色。
不过,把照片或渐变减色为调色板 PNG 会产生色带和抖动图案。因此,减色是一个需要根据图片类型来选择的预处理步骤;PNG 格式本身仍然是无损的。
PNG 的使用有多广泛?
W3Techs 2026 年 10 月的数据显示,在其监测的网站中有 74.9% 使用 PNG,是网站上使用最广泛的图片格式。根据 HTTP Archive Web Almanac 2024,移动端页面上 28.4% 的图片是 PNG,仅次于 JPEG(32.4%)。同一报告给出的 PNG 中位数为每像素 3.8 比特,JPEG 为 2.0,WebP 为 1.3。PNG 在网站上的普及主要来自需要透明背景的标志和图标;用 PNG 提供大尺寸照片会让页面毫无必要地变重。
什么时候用 PNG,什么时候选择其他格式
| 内容 | 建议 |
|---|---|
| 屏幕截图、界面、带文字的图形 | PNG(或无损 WebP) |
| 透明背景的标志和图标 | PNG;如果有矢量源文件,用 SVG |
| 照片 | JPG、WebP 或 AVIF;PNG 会毫无必要地大 |
| 还要继续编辑的工作副本 | PNG;再次保存时不会累积损失 |
| 网页上带透明背景的类照片图像 | WebP 或 AVIF;既保留透明度又能缩小文件 |
Google 的 WebP 页面指出,无损 WebP 图片比 PNG 小 26%。这使得 WebP 成为在浏览器中显示图形的好选择,不过 PNG 的兼容性仍然更广,几乎所有程序都能打开它。
常见问题
为什么我的 PNG 这么大?
最常见的原因是把照片保存成了 PNG。照片中的噪点和细节很难无损压缩,因此同一张图片保存为 JPG 或 WebP 时可能小好几倍。对于屏幕截图,文件大小会随分辨率直接增长。
JPG 转 PNG 后画质没有提升
PNG 保存的是保存那一刻的像素。JPG 压缩造成的损失和块状瑕疵在转换前就已经是图片的一部分,PNG 同样会把它们原样保留下来。
转换为 JPG 后透明度消失了
JPG 没有 alpha 通道。转换时,透明像素会被填充为纯色;如果你没有选择颜色,就会使用程序的默认颜色(通常是白色或黑色)。
颜色看起来不一样
PNG 可以携带颜色配置文件和伽马信息。对这些信息解读不同的程序,显示的颜色可能略有差异。用于网页的图片使用 sRGB 是最稳妥的做法。
PNG 转换技巧
- 缩小类照片的 PNG。进行 PNG 转 JPG 时默认画质为 90;透明区域默认用白色填充,你也可以选择其他背景色。
- 要保留透明度,请使用 PNG 转 WebP 或 PNG 转 AVIF;这两种格式都能保存 alpha 通道。如果在 WebP 中每个像素都必须保持不变,请勾选“无损 WebP”,文件可能会变大。
- 在保持 PNG 格式的同时缩小文件空间有限:只要图片不变,收益只能来自尝试更好的过滤器和压缩方式。我们的图片压缩工具默认把静态 PNG 转换为 WebP;如果想保留 PNG,额外的 PNG 优化选项会在不改变任何像素的前提下尝试缩小文件。
- 需要图标?PNG 转 ICO 工具会把 16、32 和 48 像素(图片足够大时还有更大的尺寸)的方形图标打包到一个文件中。
- 这些转换在你的浏览器中运行,文件不会离开你的设备。EXIF 和位置信息不会写入输出文件。
常见问题
PNG 是有损还是无损?
PNG 是无损的。无论打开和保存多少次,像素都不会改变。一些工具所说的“有损 PNG”,是在保存前减少颜色数量以生成调色板 PNG;损失发生在这个预处理步骤中,而不是格式本身。
PNG 支持动画吗?
基本的 PNG 不支持。APNG 扩展加入了动画,并随 W3C PNG 第三版成为规范的一部分。据 MDN 介绍,所有当前浏览器都能显示 APNG,但许多图片编辑器只能打开它的第一帧。
PNG-8 和 PNG-24 是什么意思?
这些名称并不在规范中,而是软件使用的简称。PNG-8 通常指最多 256 色的调色板 PNG,PNG-24 指每像素 24 位的真彩色 PNG,PNG-32 指带 alpha 通道的 RGBA PNG。
应该用 PNG 还是 WebP?
如果图片要显示在网页上,WebP 通常文件更小,也能保留透明度。如果要在其他程序中编辑、发给别人或归档,PNG 的兼容性更广。
PNG 适合印刷吗?
就画质而言是适合的,因为它是无损的,但 PNG 不支持 CMYK 颜色模型。专业印刷流程通常更倾向于使用 TIFF 或 PDF。


