网页上的图示、Logo、截图、插图——这些内容通常不是 JPG,而是 .png。PNG(Portable Network Graphics,可携式网路图形)是网路上最重要的无损图片格式,它的核心优势是两个 JPG 做不到的事:无损压缩和透明度。
PNG 不是自然演化的产物,它是在 1995 年为了解决一个法律问题而诞生的。当时,GIF 格式使用的 LZW 压缩算法被 Unisys 公司持有专利,Unisys 开始对使用 GIF 的软体收取授权费。这让网路社群大为不满,一群开发者决定设计一个完全开放、无专利限制的替代格式。
PNG 在技术上的设计目标是超越 GIF:
PNG 规格于 1996 年正式发布,并在 2004 年成为 ISO 国际标准(ISO/IEC 15948)。GIF 的动画功能是 PNG 有意不包含的功能——PNG 只做静态图片,并把它做到极致。(动态 PNG 后来由社群开发了 APNG 格式,但那是另一个故事。)
PNG 使用 DEFLATE 压缩算法(与 ZIP 使用相同的算法),这是一种无损压缩——压缩前后的像素资料完全相同,只是储存方式更有效率。
这和 JPG 的有损压缩有根本的不同。JPG 为了缩小档案而丢弃部分图像资讯;PNG 的压缩只是找到更聪明的方式来表示相同的资料,不丢失任何东西。
PNG 的压缩在以下类型的图像上特别有效:
但对于照片,PNG 的效果就不理想了——照片几乎每个像素都不同,无损压缩能发挥的空间很小,导致 PNG 照片的档案远大于 JPG。
PNG 最重要的实用功能是 Alpha 通道——每个像素除了 RGB 三个颜色值外,还有一个 0–255 的透明度值。0 代表完全透明,255 代表完全不透明,中间值代表半透明。
这让 PNG 能做到 JPG 完全做不到的事:
这是很多人疑惑的问题。答案在于压缩机制的本质差异:JPG 的有损压缩可以丢弃大量资讯换取极小的档案;PNG 的无损压缩必须保留所有资讯,压缩空间有限。
以一张解析度 1920×1080 的风景照为例:
PNG 适合需要精确像素的场景;JPG 适合照片和大型彩色图像的网路传输。
PNG 支援多种色彩模式:
在浏览器里直接完成,档案不会离开你的电脑:图片格式转换