上个月帮朋友弄报名材料,一张 939 KB 的图,系统只收 200 KB 以内。我像以前一样打开压缩工具,把画质从高拖到中再拖到低,反复试了七八次,就是压不下去。最后干脆放弃画质档位,直接填了个目标体积。
那次之后我一直有个疑问:压到 200 KB 的时候,工具到底动了什么?画质还能不能看?
为了搞清楚,我拿一张 2240 × 1680、939 KB 的实拍图(木织机,纹理很密)跑了五个档位。数据都是实际跑出来的,不是估的。
按质量压:尺寸一点没动,但也压不到 200 KB
先说左边三行。把画质档位从高调到低,输出尺寸一直是 2240 × 1680,一个像素都没少。
这符合直觉 —— 你只调了画质,没说要改尺寸。但结果有点尴尬:画质压到 45 这一档(已经相当低了),文件还有 394 KB,离 200 KB 差着一倍多。
所以如果你只会在画质档位上来回拖,大概率会和我那天一样,拖到底也压不进 200 KB。
按目标体积压:达标了,但工具顺手改了尺寸
右边两行是我填了目标体积之后的结果。200 KB 的目标,输出 199 KB;100 KB 的目标,输出 100 KB。误差都在 1 KB 以内,这点确实比我手拖准得多。
但我更在意另一列:输出尺寸从 2240 × 1680 变成了 1303 × 977。
也就是说,为了把体积压到 200 KB,工具做了两件事 —— 降画质(最终用了 56 这一档),同时把分辨率也砍掉了,像素只剩原来的 58%。
这件事界面上通常不会明说,但它是符合逻辑的:JPEG 的画质参数再往下压,收益会越来越小,而缩尺寸是立竿见影的。所以"压到多少 KB"这个要求越紧,工具越倾向于动尺寸。
这张对比图里有个反直觉的地方:按质量压到 394 KB 的那张,和原图几乎看不出差别。我一开始还以为自己裁错了,反复对了几遍才确认 —— 这张图纹理太密,压缩产生的损失被细节本身盖住了。
倒是目标 200 KB 那张,一眼就能看出软:它的像素本来就只剩 58%,放大之后边缘和颗粒都糊在一起。
一个更划算的做法:先定尺寸,再定体积
搞清楚"工具会偷偷缩尺寸"之后,我试了个反过来玩的做法:先把尺寸上限写死,再让它去够目标体积。同样一张图,同样的 200 KB 目标,结果差得很远:
| 设定 | 输出尺寸 | 实际画质档 | 结果 |
|---|---|---|---|
| 只给目标 200 KB | 1303 × 977 | 56 | 尺寸和画质各让一步 |
| 先限到 1600 宽,再压到 200 KB | 1600 × 1200 | 32 | 尺寸保住了,画质掉得厉害 |
| 先限到 1200 宽,再压到 200 KB | 1200 × 900 | 66 | 画质保住了,尺寸小一点 |
第二行和第三行的差别值得盯一会儿。都是压到 200 KB,限 1600 宽的时候画质要掉到 32 才够,限 1200 宽的时候只要 66 就够了 —— 尺寸让一步,画质就能多留很多。
原因不复杂:像素少了一半,需要编码的信息就少了一半,同样的文件体积预算下,每一块像素能分到的就更多。
所以如果你的图最终只是发朋友圈、或者放在网页上显示 800 像素宽,那把它限到 1200 宽再压,看着会比硬压到 200 KB 舒服得多。多出来的那些像素,本来也没人看得见。
那到底该怎么选
| 你的情况 | 建议 |
|---|---|
| 只想让文件小一点,尺寸必须原样保留 | 用画质档位,别看体积数字 —— 拖到你觉得还能接受为止 |
| 有个硬性体积上限(比如 200 KB) | 用目标体积,但先想一下这张图到底需要多大 |
| 知道最终显示尺寸(网页、朋友圈、材料) | 先用改尺寸把长边限到需要的大小,再压——画质能保住一大截 |
| 图片纹理很密(风景、木纹、织物) | 放宽心,这类图压狠一点也看不太出来 |
| 图片有大片平滑渐变(天空、纯色背景) | 留神,这类图压缩后容易出现色带和色块,别压太狠 |
最后一行是我自己的经验,这次没专门测。但从原理上讲得通:渐变区的像素值变化很平滑,压缩算法把它量化之后,原本连续的过渡就会出现台阶,看上去就是一条一条的色带。而纹理密的区域本来就在剧烈变化,量化误差混在里面反而看不出来。
顺带说两个细节
一个是 PNG 的逻辑完全不一样。PNG 是无损格式,不存在"画质档位"这回事,它的压缩手段是减少颜色数量。所以拿 PNG 截图去压,思路和 JPEG 完全不同:与其纠结画质,不如考虑这张图是不是本来就该存成 JPG。
另一个是如果原图已经压过一轮,再压可能没有收益。我第一次拿这张图试 90 这一档,工具直接返回了原文件 —— 重编码之后的体积反而更大,它就没动。这个处理方式我觉得挺对的,至少不会出现"压完比原图还大"这种荒唐事。
上面这些测试,我是在自己的图片工具里跑的。浏览器里能直接用的在图片工具那一栏,压缩、格式转换、改尺寸都在;手机上顺手要处理的话,小程序里也有同一套。
