图片压缩后变糊怎么办?WebP/AVIF 参数实测:长边 1600、q=76、锐化最后做
先说结论:图片处理里最贵的不是软件,是顺序。你先把图拉进 PS 调对比度、加锐化、再导出 3000px 的 JPEG q=90,上传后平台照样给你压成 1200px 的 WebP,边缘该糊还是糊。我上个月帮朋友处理一批二手相机图,原片是 Sony A7M3 的 24MP JPEG,单张 8–11MB,闲鱼上传后螺丝纹路像被橡皮擦抹过。后来我把长边从 6000px 改成 1600px,WebP q=76、method=6,再补一道半径 0.4 的 USM,文件降到 180–260KB,手机端反而更锐。这个反差让我把“保真”两个字先放下了:你要控的是二次压缩后的结果,不是原图在电脑里有多漂亮。
平台二次压缩,才是糊图的元凶
大部分平台不会直接展示你的原图。微信、闲鱼、小红书、淘宝详情页,基本都会按自己的规则再编码一次:有的转 WebP,有的用 4:2:0 色度采样,有的把长边卡在 1200–1600px。你上传一张已经 JPEG q=80 的图,平台再压一次,块效应就会叠在块效应上,暗部先出现色块,红色边缘先发灰。我做过一组很笨的对比:同一张图,A 直接传 3000px JPEG q=85,B 先缩到 1600px 再传 WebP q=82,B 在手机 1x 屏幕上的锐度明显更好。原因不神秘,B 少让平台做一次缩放,也少让编码器重新猜一次色度。
还有两个细节经常被忽略:透明通道和元数据。PNG 透明图转 WebP 时,如果 alpha_quality 没拉高,透明边缘会出现一圈灰边;用 AVIF 会干净一些,但兼容性更窄。元数据方面,GPS、相机型号、Lightroom 参数会让文件多出几十到几百 KB,对网页首屏不友好。我的习惯是:先 magick input.jpg -auto-orient output.jpg 把旋转写进像素,再统一 exiftool -all= -overwrite_original 清元数据。注意,先旋转再删,否则 Orientation 被删后,有些老看图软件会把竖图横过来。
7 组实测:尺寸比质量更影响观感
我在 MacBook Air M1、macOS 14.5 上跑了一组小样本,工具是 ImageMagick 7.1.1、cwebp 1.5.0、Squoosh 网页版。样本是一张 24MP 的相机特写,只保留中间 1800×1800 区域,方便对比螺丝和蒙皮纹理。下面不是实验室数据,是我用肉眼在 iPhone 13、戴尔 2K 屏、微信预览窗口里来回切换的结论。
| 组 | 长边 | 格式/参数 | 文件大小 | 我的观感 |
|---|---|---|---|---|
| A | 3000px | JPEG q=85 | 1.8MB | 平台二次压缩后边缘发虚 |
| B | 1600px | WebP q=82 method=6 | 240KB | 锐度最好,但体积略大 |
| C | 1600px | WebP q=76 method=6 | 168KB | 手机看不出,200% 有涂抹 |
| D | 1200px | WebP q=86 method=6 | 150KB | 手机够用,电脑 2x 屏偏软 |
| E | 1600px | AVIF cq=30 speed=6 | 112KB | 暗部干净,旧微信打不开 |
| F | 1600px | JPEG q=90 4:4:4 | 420KB | 平台再压后仍比 A 好 |
| G | 1600px | WebP q=76 + USM 0.4 | 176KB | 最讨喜,但文字边有白边 |
这表里最扎眼的是 E 组。AVIF 在 cq=30、speed=6 时只有 112KB,暗部噪点比 WebP 少,可我在一台安卓 12 的旧微信里直接白屏。后来查了下,WebP 在微信、QQ、Chrome、Safari 14+ 基本稳,AVIF 在 Safari 16+、Chrome 85+ 没问题,但老 WebView 和部分安卓内嵌浏览器会翻车。所以别盲目 AVIF 一把梭。我的做法:网站用 <picture> 挂 AVIF + WebP fallback;闲鱼、微信、公众号只传 WebP 或 JPEG;给客户交付源文件才用 PNG/TIFF。
我现在固定用的 5 步流程
第一步,统一方向与尺寸。用 magick input.jpg -auto-orient -resize '1600x1600>' output.png,> 表示只缩小不放大。电商主图我会给到 1600×1600,详情页长图宽 750–1200,长边不超过 2000。第二步,定黑白场再谈对比度。别直接拉 +20 对比度,那会把高光切掉。我一般在 Levels 里把黑场设到 5–10,白场设到 245–250,再动曲线中间调。产品图背景要干净,人像别把皮肤高光压死。第三步,锐化放在缩放之后。USM 参数:产品/文字 半径 0.4–0.6、数量 60–90%、阈值 2–4;人像 半径 0.3–0.5、数量 30–50%、阈值 3–5。第四步,导出 WebP。命令行是 cwebp -q 76 -m 6 -sharp_yuv -metadata none input.png -o output.webp;有透明通道再加 -alpha_q 100。第五步,三处检查:100% 视图看文字边缘、手机微信预览看红色和肤色、暗色背景看透明边。别只看文件夹缩略图,那东西骗过我不止一次。
如果你不想碰命令行,Squoosh 也能复现大部分参数:WebP 选 Quality 76、Method 6、勾选 Sharp YUV;AVIF 选 Quality 30–35、Speed 6、Chroma subsampling 4:2:0。Photoshop 导出时,JPEG 选“转换为 sRGB”、品质 80–85、格式基线标准;需要透明再走 PNG,但网页用 PNG 通常比 WebP 大 2–5 倍。Lightroom 导出别开“锐化:屏幕”,那个锐化对缩放后的图经常过量,我一般关掉,回到 PS 里做最后一道 USM。
反常识参数:q=76 不是玄学,AVIF 也不是全胜
WebP 的 q=76 是我用得最顺的甜点,不是因为它有魔法,而是 libwebp 默认就是 75 附近,超过 85 后文件涨得快、肉眼收益小。Method 6 比 Method 4 慢 2–3 倍,同质量文件小 8–15%;如果你一次要导 300 张,Method 4 更划算,肉眼差距没有表格里那么大。-sharp_yuv 对 4:2:0 的锐度有帮助,但会让人像肤色多一点点噪,皮肤图我把 q 提到 80 再关掉它。
AVIF 的对比更明显:低质量下比 WebP 少 20–35% 体积,暗部干净,但编码慢 5–10 倍,旧环境兼容差。我的独立观点是:别把格式当信仰,把“传播链”当决策依据。发微信、闲鱼,WebP/JPEG 优先;做官网、有 fallback、能控制服务器,AVIF 可以上;做印刷或给客户改稿,老老实实 TIFF/PNG。锐化也一样,锐化不是清晰度,是边缘对比度。过度 USM 会在头发和天空出现白边,平台再压一次就变成锯齿,比不锐还难看。
如果你只记 3 条
一是长边 1600px 比质量 90 更重要,先缩尺寸再谈压缩。二是日常 WebP q=76、method=6、sharp_yuv,透明图加 alpha_q=100,基本能覆盖 80% 场景。三是锐化最后做,半径小、数量看题材,导出前一定用手机预览一次。图片处理没有唯一正确答案,但有一个很土的原则:让下一环节的编码器少做决定。你少让它猜,它就少糊你的图。