跳到主要内容
Convertube

PNG 文件:无损、透明,而且常常比你以为的大

PNG 为什么是精确的、什么时候比 JPG 好、以及为什么一张照片存成 PNG 会大得惊人。在浏览器里转换 PNG,不上传。

速览

类型
图片
压缩
无损
扩展名
.png
MIME 类型
image/png
别称
Portable Network Graphics

PNG 在 1996 年被设计出来有一个具体的理由:GIF 用的是 LZW 压缩,而 LZW 有专利,网页需要一个自由的替代品。这场努力的产物在每个维度上都优于它所取代的东西——24 位色而不是 256 色、真正的 alpha 通道而不是单一透明索引,以及确实无损的 DEFLATE 压缩。解码一个 PNG,你每一次都能精确拿回放进去的那些像素。

展开说明

「无损」就是它的全部故事,而这把刀是双刃的。PNG 是截图、图表、线稿、logo 以及任何带文字内容的正确格式,因为它精确复现锐利边缘,而 JPEG 会在那些边缘周围留下柔化的雾感。它是照片的错误格式,因为要无损地描述一张「相邻像素几乎没有相同」的图像,需要极其大量的字节。一张 JPG 下 800 KB 的照片,存成 PNG 可以是 5 MB,而且看起来并不更好。

alpha 通道是 PNG 至今不倒的另一个理由。每像素八位的透明度意味着真正柔和的边缘——抗锯齿的文字、投影、一个能放在任何背景上的 logo。正是这个能力,让 PNG 至今仍是设计工作的交换格式,尽管 WebP 现在对同样的像素压缩得好得多。

两个值得知道的细节。PNG 可以是索引色的(最多 256 色,像 GIF)也可以是全彩的,而纯色图形的索引色 PNG 可以小得惊人——这就是为什么有些优化工具能在肉眼看不出变化的情况下大幅缩小文件。另外 PNG 只装一张图:动画在单独的 APNG 扩展里,而大多数工具不写它,所以在本站把动态 GIF 转成 PNG,只会得到第一帧。

把 PNG 转成其他格式

把其他格式转成 PNG

PNG常见问题

PNG 真的是无损的吗?

是的,字面意义上的无损。解码一个 PNG 会精确返回编码进去的那些像素。它靠找出冗余来压缩——和 ZIP 处理文档一样——而不是靠丢弃细节。

为什么我的 PNG 比 JPG 大这么多?

因为它真实地存下了每个像素的信息。照片里没有两个完全相同的相邻像素,在无损规则下压缩效果很差;而 JPG 的小体积恰恰是靠丢弃细节换来的。

什么时候该用 PNG 而不是 JPG?

截图、文字、图表、线稿、logo,以及任何需要透明的内容。另外在编辑之前、你打算反复保存的时候也该用——PNG 不会像 JPG 那样累积损伤。

把 JPG 转成 PNG 会让它变好吗?

不会。它能阻止进一步的损失,但无法撤销 JPG 已经丢掉的东西。那些痕迹已成为图像的一部分,而 PNG 会忠实保留它们。

PNG 支持动画吗?

只通过单独的 APNG 扩展,而大多数工具不产出它。一个 PNG 只装一张图,所以在本站转换动态 GIF 会得到它的第一帧。

PNG 还是 WebP?

WebP 对同样的像素压缩得好得多,而且同样支持透明,所以做网页选它更好。PNG 仍是设计工具和「必须到处都能打开」的场合更稳妥的交换格式。

为什么会有人把 PNG 转成 BMP?

只有当软件非它不可时——一些老的 Windows 工具、科研仪器和单片机代码只读原始像素。BMP 不压缩,所以文件会大很多,而且透明会丢失。

能在这里用 PNG 做 favicon 吗?

可以,但有一条要注意:输出是装在 .ico 文件名里的 PNG 数据。浏览器接受它作为 favicon,但它不是真正的多分辨率 ICO,也不能当 Windows 应用程序图标用。