图片压缩后变糊?聊聊图片加工里那条没人提的「降质链」
上周去朋友店里帮忙,她开童装网店,电脑里堆了三百多张主图。她跟我抱怨:图传上去就糊了,是不是淘宝压缩太狠。我随手点开一张看,600×600 的 JPG,按体积和细节估算,压缩质量在 60 上下,而且是从微信聊天记录里「另存为」回来的一份。问题不在平台,在这张图到电脑上之前,已经被加工过四遍了。
一、画质不是在某一步丢的,是一路丢下来的
先说微信这一步。iPhone 拍的原图是 4032×3024,3.6MB 左右,用普通方式发给别人(不是「原图」按钮),对方保存到手机再传回电脑,拿到的往往是 1280×960 上下、180KB 的文件。这一步已经砍掉了九成的像素。很多人做图片加工,起点就是这么一个二手文件,后面再怎么精致修图,都是在给一张残片补妆。
第二步是修图软件导出。美图秀秀、醒图这类工具默认导出质量大概在 80 出头,个别版本更低。第三步传到电商后台,后台还会再生成一套多尺寸的缩略图。第四步是用户手机端,拿到的可能是 750 宽的版本。整条链路上,图片被有损编码了至少三次。
JPEG 每一次重编码,都要重新走一遍 8×8 像素块的 DCT 变换和量化。质量 90 存一次,肉眼真看不出来;连着存五次,天空、皮肤这种大面积渐变上就会浮出 8 像素见方的方块,边缘出现一圈「蚊子噪声」。我拿一张纯净渐变图做过对比,另存五次之后放大到 400%,断层是能看出来的。这跟用哪个软件没关系,是 JPEG 格式本身的机制。
二、尺寸、DPI、色彩配置:三个天天被搞混的东西
先说 DPI。72 还是 300,对屏幕显示毫无影响,它只是告诉打印机「一英寸塞多少个点」。一张 800×800 的图,写成 72dpi 还是 300dpi,在浏览器里一模一样大。淘宝审核不看 dpi,看像素。我见过有人为了「达到 300dpi」把图强行放大,反而更糊。
色彩配置这个坑更隐蔽。手机和相机可能拍的是 Display P3 或者 AdobeRGB,直接传到网页,浏览器按 sRGB 解释,颜色会发灰发闷,橙色红色尤其明显——你自己电脑上看着饱和,客户手机上是暗淡的。导出前统一转 sRGB,这一步别省。
尺寸参数我按平台列一下,都是能直接用的:淘宝天猫主图至少 800×800 才有放大镜,建议 1000×1000、1:1;详情页宽度 750px,单张长度别超 1500px;公众号首图 2.35:1,900×383,小图 1:1、200×200;朋友圈建议 1080 宽,竖图 1080×1440;抖音和视频号封面 1080×1440,也就是 3:4。
三、格式怎么选,直接给场景
照片类,有渐变有皮肤的那种,用 JPEG 质量 82–88,或者 WebP 质量 75–80。带透明背景的,比如抠好的商品图、logo,WebP 带 alpha 最省体积,兼容性要求高就用 PNG-24。纯色块、文字截图、图标,PNG-8(256 色索引)或者 SVG 都行,PNG-8 有时候只有 PNG-24 的三分之一大。GIF 动图转成 WebP 动图或者干脆转 MP4,体积能省一半以上。
顺带说个翻车点:PNG 转 JPG,透明区域会变成黑色或者白色,看你软件设置。抠好的商品图千万别这么直接转,转之前先铺一层白底。这个错误我在别人的详情页上见过不止一次,白底商品图边缘一圈黑毛刺。
四、我现在在用的批处理流程
第一步,先按目标比例裁切,再缩放。顺序反了会吃亏:先缩到 800 宽再裁成方形,实际有效像素就不够了。第二步,统一转 sRGB,扔掉原来的 ICC 配置文件。第三步,导出 JPEG 质量 86。第四步,锐化放在最后做,只在缩小之后做一次 USM,半径 0.5–0.8,数量 60% 左右——缩放必然发软,锐化能补回来一点。第五步,重命名成「品类_货号_序号.jpg」,后期找图不抓瞎。
命令行用 ImageMagick 7,一条搞定:
magick mogrify -path ./out -resize 1000x1000^ -gravity center -extent 1000x1000 -colorspace sRGB -strip -quality 86 *.jpg
图形界面的话 XnConvert 免费够用,Squoosh 适合单张调参数、实时看压缩前后的对比。
五、几个和主流说法不太一样的观点
第一,质量不是越高越好。JPEG 从 q90 降到 q80,体积通常能省 35–45%,肉眼几乎无感;但从 q80 再降到 q60,体积只再省两成左右,块效应和色度糊边就开始明显。q80 附近是性价比拐点,不是「拉到 100 才叫专业」。
第二,图片加工这活儿,很多需求本质上是在补救。补救之前某一步的错误加工。一开始就用原图、只缩放一次、只导出一次,后面根本不用折腾。能少一道工序就少一道,这话我在给自己找偷懒理由的时候想通的。
第三,别把客户原图往在线压缩网站上扔。那些站点大多会把文件留一段时间,图里还带着 GPS 的 EXIF 元数据。要压就在本地压,导出时记得 -strip(ImageMagick)或者勾掉「保留元数据」。
折腾这些年,我的实际感受是:真正需要「做对」的动作就那么几件,剩下大部分时间都在收拾前面做错的那几步。图片加工尤其如此。