如何在不让画质变差的前提下减小 JPEG 体积
一份实用指南:在保住真正重要细节的同时压缩 JPEG,以及多数在线工具都会悄悄做错的那一个设置。
几乎所有"图片压缩"工具都在做同一笔悄悄的交易:丢掉你一半的颜色信息,然后指望你没看出来。这种损失通常出现在肤色、红花、细小的彩色文字,以及任何有强烈色彩边缘的照片上。调质量滑块救不回来——因为这根本不是质量问题。
到底是什么让 JPEG 变大
JPEG 用全分辨率存亮度,用降低的分辨率存颜色。这个比例叫色度抽样:
- 4:4:4 —— 颜色全分辨率存储。保真度最高,体积最大。
- 4:2:2 —— 颜色的水平分辨率减半。对多数照片来说与 4:4:4 几乎看不出差别。
- 4:2:0 —— 颜色横竖都减半,四分之三的颜色数据没了。
很多相机和图像生成工具导出的是 4:4:4。而很多编码器在被要求输出"网页用"或"已压缩"JPEG 时,会悄悄转成 4:2:0。这个转换是不可逆的:颜色细节在质量滑块被考虑之前就已经被丢掉了。
我们在 1195 张生成插画上实测过:保持相同质量、只把 4:4:4 降成 4:2:0,最差颜色通道的 SSIM 从 0.984 掉到 0.975,单张最差掉到 0.944。把质量调高也救不回来。
质量数字不是百分比
JPEG 的"质量 80"不代表"原图的 80%"。它只是 1992 年定义的一张量化表的下标,没有任何物理含义。两个都标称质量 80 的编码器,在视觉质量相同时体积可能差 40%。
对照片类内容,实用的区间是:
- q90–q95 —— 与源图并排裁切对比也基本看不出差别。
- q80–q85 —— 网页常用甜点区。通常比 q99 导出小 60%–75%。
- q60–q70 —— 缩略图和背景图够用,细节纹理会有可见的变软。
- 低于 50 —— 渐变区域会出现明显块状。
这个工具的不同之处
我们在动手之前先读你文件头里的色度抽样,并原样保留。你的图是 4:4:4,结果就还是 4:4:4。多数工具连你文件用的是什么都说不上来;我们在压缩前就把它显示在每张图上。
我们也不白花你的画质。如果你的文件已经被压过(比如之前导出时选了 q70),再用 q80 重编只会让文件变大而不会变好看——编码器在花比特去描述上一轮的压缩痕迹。这种情况我们会识别出来,并且不去猜,而是走无损路径:只重写熵编码,图像数据逐位不变。baseline JPEG 上通常能省下约 4%。
一套靠谱的流程
- 从 q80 开始,勾选"保持原始色度抽样"。
- 在有细腻颜色细节的地方按 100% 看结果,别看天空。
- 还是太大就用指定体积模式,填你真正需要的上限——比如表单上传要的 200 KB。
- 能拿到原图就别对已压过的文件反复压。
全部处理都在你的浏览器里完成,图片不会上传。