前阵子帮朋友弄活动海报,导出来一张 8M 的图,往微信群里一发,自动压成马赛克。他自己重试了好几回,越压越糊,最后气得直接用原图,结果别人手机半天加载不出来。
这种事太常见了。上传头像提示"图片不能超过 2M"、做网站图片太多页面卡成 PPT、发邮件附件超大小被退信……最后都得压缩。但大多数人压缩完的体感是:要么还是大,要么糊了。
其实问题不在"压不压得动",在怎么压。
为什么一压就糊
先说个反直觉的点:图片占空间,主要不是因为它"内容多",是因为像素多 + 信息密。
你拍的一张手机照片,随随便便四五千万像素,但微信缩略图显示也就巴掌大。这时候你需要的不是"降低画质",是把多余的分辨率砍掉——把 4000 宽压到 1200 宽,体积能掉一大半,肉眼几乎看不出区别。
很多人压图糊,是因为工具默认把质量参数拉得很低。质量 30% 和 80%,文件能差三倍,但 80% 看起来和原图基本没差。所以正确顺序是:先保分辨率别乱降,再去调质量,一般 75%~85% 是个甜区。

还有个常被忽略的:格式。同样一张图,PNG 是无损但肥,JPG 有损但小,WebP 通常在同等清晰度下比 JPG 还小个 20%~30%。有时候不降一点质量,单纯换个格式,体积就下来了。
"压到指定大小"是怎么做到的
上面说的是"凭感觉压"。但实际场景往往是硬指标:头像必须 ≤2M、论坛附件 ≤5M、公众号封面 ≤10M。
这时候你需要的是目标大小压缩——告诉工具"我要 500KB",它自己在分辨率和质量之间找平衡,而不是你手动试。
我自己常用的做法:
- 先拖进去,别管参数;
- 填一个目标大小,比如 800KB;
- 看出来的图清不清楚,不清楚就松一点到 1M,清楚了就锁死。

站上那个 图片压缩 就是这么干的,纯浏览器跑,文件不上传服务器,关掉页面啥都不留。对隐私敏感的东西(比如带公章的扫描件)这点挺重要。
几个容易踩的坑
- 原图留好。 压缩是有损的,压完回不去。我习惯压之前先复制一份,别在原图上直接覆盖。
- 别反复压同一张。 JPG 每压一次就掉一次质量,A 压成 B、B 再压成 C,C 会比"原图直接压成 C"糊得多。要压就一次到位。
- 批量注意命名。 一次压几十张,输出名要是和原图撞了,容易覆盖。工具一般会自动加后缀,但自己心里有数稳妥。
说到底,压缩不是目的,是手段。它解决的永远是那句话:让图在该小的地方小下去,在该清楚的地方清楚着。
