大多数人说"不损失画质",其实是指:文件小到没人看得出你动过手脚。真正数学意义上的无损压缩确实存在,但它对照片几乎没什么效果。大家真正想要的省空间效果,来自视觉无损压缩——扔掉那些你眼睛本来就注意不到的数据。

下面讲讲怎么稳妥地做到这一点,以及怎么确认自己做对了。

一个数字决定一切

如何压缩图片而不损失画质 — visual 1
一个数字决定一切

对 JPG 和 WebP 来说,全部关键就在质量滑块。设得太高,文件依然臃肿;设得太低,天空会出现色块、文字会发糊。照片的甜蜜区通常在质量 75–85 之间。在这个区间里,一张普通 JPEG 能减掉 40–70% 的体积,而在正常观看距离下看起来毫无差别。

为什么行得通?照片里满是渐变和噪点,本来就很好压;在繁杂的画面里,细微的颜色偏移根本看不出来。而一张边缘锐利的纯色 logo 恰恰相反——那是 PNG 的活儿,后面会讲。

从高质量开始,一档一档往下降,直到刚刚能看见瑕疵,再往回升一档。那就是你的视觉无损点。

PNG 是另一回事

如何压缩图片而不损失画质 — visual 2
PNG 是另一回事

PNG 没有质量滑块,因为它本身就是无损的。要让 PNG 变小,靠的是减少它存储的颜色数量。大多数 PNG——截图、图标、插画——用到的颜色远少于它被允许的 1600 万种。量化到 256 色调色板,往往能砍掉 60–80% 的体积而看不出变化,因为原图本来就用不上那么多颜色。

这正是知名的 "tinify" 类工具用的招数。IMG.DIY 的图片压缩工具会自动对 PNG 做 256 色量化,你不用摸索设置就能获得大幅缩减。如果你的 PNG 其实是一张存错了格式的照片,先把它转成 JPG 或 WebP——那比任何 PNG 优化都省得多。

顺手把尺寸也压一压

一张 6000 像素宽的照片,显示在 1200 像素宽的栏目里,携带的数据是屏幕能显示的五倍。在动压缩之前,先问一句:这张图是不是比实际需要的大?压缩工具有个可选的宽度上限——把它设成图片实际会出现的最大尺寸,省下的空间就叠加了。

一套顺手的操作顺序:

  1. 缩到真实显示宽度(或设置宽度上限)。
  2. 照片用质量 75–85 压缩,PNG 交给量化处理。
  3. 与原图对比,放大到原始分辨率看一眼局部。

怎么确认没丢东西

把压缩后的文件放大到 100% 查看,盯住要紧的地方:人脸、文字边缘、天空这类平滑渐变。这些扛住了,其余的自然没问题。一个值得知道的安全网:好的压缩器绝不会给你比原图更大的文件——如果压缩帮不上忙,它就保留原样。IMG.DIY 就是这么工作的,所以你可以整个文件夹批量处理,放心不会有哪张变差。

在本地处理,保护隐私

还有一点,如果这些图片不该外泄就更重要:上面每一步都完全在你的浏览器里运行,什么都不上传。IMG.DIY 用 Canvas 和 WebAssembly 在你自己的机器上处理文件,首次访问之后工具就被缓存,可以离线使用。你完全可以在没有信号的飞机上批量压缩一堆客户照片。

把文件拖进去,选个质量,然后下载打包好的 ZIP:

一句话总结:照片用质量滑块,PNG 靠量化,把过大的尺寸压下来,再检查 100% 的局部。这就是没人看得出来的压缩。