反馈

图片压缩原理:有损无损,JPEG 为什么比 PNG 小

同一张照片存成 PNG 可能有 5MB,存成 JPEG 可能只有 500KB——差出 10 倍的体积不是压缩算法"更努力",而是两种格式对"允许损失多少画质"做出了完全不同的取舍。


目录

  1. 有损压缩和无损压缩的本质区别
  2. 为什么 JPEG 比 PNG 小得多
  3. 什么时候该用哪种格式
  4. WebP:现代格式想两头兼顾

1. 有损压缩和无损压缩的本质区别

图片压缩分两大类:无损压缩保证压缩后能完全还原出和原图逐像素一致的画面,只是用更聪明的编码方式去掉数据里的冗余(比如大片相同颜色的区域用更紧凑的方式记录,而不是逐个像素重复记录同样的颜色值);有损压缩则允许在压缩过程中"丢弃"一部分人眼不容易察觉的图像细节,用这种"损失换体积"的方式换来远超无损压缩的压缩率。这个区别决定了两类格式的根本取舍:无损压缩保真但压缩率有限,有损压缩体积能压得很小但会有画质损失,而且损失是不可逆的——一旦有损压缩过,再怎么处理都无法还原出原始的完整画质。

2. 为什么 JPEG 比 PNG 小得多

PNG 是无损格式,压缩过程完全不丢失任何像素信息,这也是为什么 PNG 特别适合截图、图标、文字类图片(这类图片色块边界清晰,无损压缩效率也相对不错,同时保证文字边缘不会因为压缩而变得模糊或产生色斑)。

JPEG 是有损格式,压缩算法利用了人眼对亮度变化比对颜色细节变化更敏感这一生理特性,在色彩信息上做更大幅度的简化(专业术语叫色度子采样),同时把图像分成小块做频域变换,丢弃高频细节(人眼不容易察觉的细微纹理变化),从而大幅减少数据量。这套"针对人眼视觉特性做取舍"的压缩策略,是 JPEG 能比 PNG 小很多的核心原因——但也正因为这套策略,JPEG 不适合压缩文字、线条图这类需要清晰锐利边缘的内容,压缩强度稍大就容易在边缘产生模糊和色块(业内俗称"JPEG 伪影")。

3. 什么时候该用哪种格式

  • 照片、风景图、人像(色彩渐变丰富、细节复杂):优先用 JPEG,人眼对这类图像里的轻微有损压缩不敏感,能换来明显更小的文件体积
  • 截图、图标、Logo、文字类图片(色块边界清晰、需要保留锐利边缘):优先用 PNG,避免有损压缩带来的边缘模糊和色斑
  • 需要透明背景:只能用支持透明通道的格式(PNG 或 WebP),JPEG 不支持透明度

4. WebP:现代格式想两头兼顾

WebP 是 Google 推出的现代图片格式,同时支持有损和无损两种压缩模式,目标是在同等画质下比 JPEG(有损模式)和 PNG(无损模式)都做到更小的文件体积,还额外支持透明通道和动画(类似 GIF 但压缩率更高)。目前主流浏览器已经普遍支持 WebP,这也是为什么越来越多网站开始把图片资源从 JPEG/PNG 切换到 WebP 以加快页面加载速度——不过老旧的图像处理软件或部分兼容性要求严格的场景,仍然可能只支持传统的 JPEG/PNG 格式。


在线工具:图像压缩