图片压缩是如何工作的:有损vs无损解析 | Bulk Image Compressor

图片压缩到底是什么?

图片压缩就是通过移除数据来减小文件大小。这就是整个概念。你拿一个比如5MB的文件,把它缩小到500KB或更少。问题始终是:哪些数据被移除了,你会注意到区别吗?

每张数字图像都由像素组成,每个像素存储颜色信息。一张4000x3000的照片有1200万个像素,如果每个像素存储24位颜色数据,那就是大约36MB的原始信息。显然,没人想处理36MB的图像文件,所以我们压缩它们。

有两种方法:有损和无损。它们工作方式不同,产生不同的结果,适用于不同的用途。

有损压缩:丢弃你不会怀念的东西

有损压缩永久移除了一些图像数据。一旦消失,你无法找回。这听起来很糟糕,但事情是这样的:它设计用来移除你的眼睛不太容易注意到的内容。

人类视觉在感知亮度变化方面比颜色变化更好。我们也不太擅长在繁忙、复杂的图像区域中捕捉精细细节。有损压缩利用了这两个事实。

JPEG压缩是如何工作的

JPEG是最常见的有损格式,它的工作方式相当巧妙。

首先,图像被分割成小的8x8像素块。每个块经过一种叫做离散余弦变换(DCT)的处理。不用担心数学。DCT做的是将像素数据从”这里是每个位置的颜色”转换为”这里是这个块中变化的模式”。

经过变换后,数据被量化。这是信息实际被丢弃的步骤。微妙的高频细节(颜色和亮度的微小变化)被舍去或消除。任何图像编辑器中的质量滑块控制这个量化的激进程度。

在质量95时,很少被移除。在质量30时,很多被移除。这两个设置之间的文件大小差异可能是巨大的,通常是10倍或更多。

最后一步是熵编码,这只是一个无损步骤,尽可能高效地打包剩余数据。可以把它想象成压缩文件。

质量权衡

每个有损压缩都涉及文件大小和视觉质量之间的权衡。好消息是这个权衡不是线性的。从质量100到质量80可能将文件大小减少70%,而几乎没有可见差异。从80到60节省的空间较少,但开始显示伪影——那些你有时在重度压缩的照片中看到的块状、涂抹的区域。

对大多数照片来说,质量75-85是最佳点。你获得巨大的文件大小节省,图像在大多数人看来仍然很棒。如果你想了解更多关于找到正确平衡的信息,请查看我们的指南如何减小图片文件大小而不损失质量

无损压缩:保持每个像素

无损压缩在不移除任何数据的情况下减小文件大小。当你解压文件时,你会得到完全相同的原始文件,逐像素一致。代价是无损文件比有损文件大。

那么,如何在不丢失任何内容的情况下缩小文件?通过寻找更高效的方式来描述相同的数据。

PNG压缩是如何工作的

PNG是最广泛使用的无损格式。它结合了滤波和DEFLATE压缩(与ZIP文件中使用的算法相同)。

在压缩之前,PNG对每行像素应用滤波。它不存储原始颜色值,而是可能存储每个像素与其相邻像素之间的差异。在颜色逐渐变化的区域,这些差异是非常小的数字,通常为零。小的、重复的数字比看起来随机的原始值压缩得好得多。

滤波之后,数据经过DEFLATE,它找到重复的模式并用更短的代码替换它们。如果一个像素序列出现多次,它被存储一次并在其他地方引用。

结果:你得到一个更小的文件,仍然是原始文件的完美副本。对于一个典型的截图或图形,PNG压缩可能在不损失任何质量的情况下将文件大小减少50-70%。

无损闪光的领域

无损压缩在图像有大面积相同颜色、锐利边缘和文字时效果最好。截图、标志、图表、UI元素——任何有平坦颜色和清晰线条的东西——这些用PNG压缩效果非常好。

照片用无损方法压缩效果不佳,因为它们在每个像素中有太多变化。一张无损压缩的照片可能比同一张照片保存为质量80的JPEG大3-5倍,而大多数人看不出区别。

何时使用每种类型

使用有损(JPEG)当:

  • 你在处理照片
  • 文件大小比像素级精确更重要
  • 图像将在Web上显示
  • 你需要一次性压缩多张图片(试试批量图片压缩器进行批量处理)

使用无损(PNG)当:

  • 图像有文字、标志或锐利边缘
  • 你需要透明度(PNG支持,JPEG不支持)
  • 你保存截图或UI模型
  • 你之后需要再次编辑图像并想保持质量

质量设置实际意味着什么

当你在任何图像工具中调整1到100的质量滑块时,你是在控制量化步骤中丢弃多少数据。但这些数字在不同工具中没有标准化。Photoshop中的质量80、GIMP中的质量80和在线压缩器中的质量80都可能产生不同的结果。

比数字更重要的是输出。压缩你的图片,查看它,检查文件大小。如果看起来不错且文件足够小,你就完成了。如果看起来不好,把质量调高一点再试。

一个实用的方法:从质量80开始并与原始图片比较。大多数时候,你不会看到差异。如果你看到了,试试85或90。在70以下,压缩伪影在大多数照片中变得明显。

不必是非此即彼

像WebP这样的现代格式实际上在同一格式中支持有损和无损压缩。你在保存文件时选择使用哪种模式。这种灵活性是WebP在网页图片中变得如此受欢迎的原因之一。你可以在我们的JPEG vs PNG vs WebP对比中了解更多关于格式差异的信息。

总结:压缩是关于做出明智的权衡。有损通过移除你的眼睛不会怀念的数据来工作。无损通过更高效地描述相同数据来工作。知道使用哪种,以及何时使用,能节省你的时间并让你的图片在最小的文件大小下保持好看。

Ready to compress your images?

Bulk compress JPEG, PNG, WebP, and AVIF images right in your browser. No uploads, no sign-ups.

Try Bulk Image Compressor