上个月帮一个做家居的朋友处理一批产品图,原片是佳能 R6 拍的,室内白炽灯加两个柔光箱。我用 Lightroom 调完导了 312 张,导出参数是长边 2000px、JPEG 质量 85、sRGB。主图传上去看着还行,详情页那几张就废了——白底发灰,吸管吸出来是 245 左右的脏白,木纹暗部还起了一层脏噪点。我一开始以为是平台压缩太狠,查了两天才发现是自己挖的坑:那批图里有 47 张是我在 PS 里单独修过的,而我的 PS 工作空间设的是 ProPhoto RGB,存 JPEG 的时候忘了转回来,色彩配置文件就跟着图片一起上去了。绝大多数电商后台的图片处理链路不认 ProPhoto,直接按 sRGB 解释,颜色整体就塌了。这事之后我养成了一个习惯,拿到一批图第一句话是问「这图最后发哪儿」,第二句话才是「要不要修」。
这个习惯听起来有点反常识,但我觉得图片加工这件事,真正决定成品质量的不是修图那一步,是导出那一步。修图决定的是上限,导出决定的是下限,而下限才是大多数人实际看到的东西。你把曲线拉得再细腻,导出的时候选错色彩空间、压缩过了头、或者尺寸不是平台推荐值,用户看到的还是那张糊图。下面这些是我这两年踩坑踩出来的,不一定权威,但都是我自己测过的。
先讲尺寸。很多人以为尺寸只是「别太大」,其实更麻烦的是缩放的比例。1920 缩到 1080 是 0.5625 倍,Photoshop 用「两次立方(较平滑)」处理得很干净;但 1000 缩到 750 这种 0.75 倍就很容易出事,尤其是拍格纹布、百叶窗、细密针织这类有规律的纹理,缩放后会出现明显的摩尔纹,一条一条的彩色条纹。我的土办法是分两步缩:先缩到目标尺寸的 2 倍,再缩一半,两次都用「两次立方(较锐利)」。听起来多余,但在我测过的那批布艺图上,一步缩和两步缩的差别是肉眼能看出来的。缩完记得加锐化,我的参数是 USM 锐化半径 0.8、数量 55%、阈值 2,这个组合是给 2000px 缩到 1080px 的图用的,比默认的半径 1.0 干净,不容易在边缘抠出一圈白边。
然后是 JPEG 质量。这条曲线我拿十几张不同类型的图测过,质量从 100 往下走,90 到 100 这段体积几乎翻倍,肉眼看不出区别;85 是个甜点,体积大概只有质量 100 的三分之一;掉到 70 以下开始出问题,8x8 的块状伪影会在纯色渐变上冒出来——电商白底、人像脸颊、天空,这三处最明显。所以我常用的三档是:详情页 85,主图 92,社群发的 88。格式上,WebP 在同等观感下体积大概是 JPEG 的 65% 到 75%,AVIF 还能再省 20% 到 30%,但 AVIF 编码实在太慢了,我拿一张 4000x3000 的图在 Squoosh 里跑,JPEG 一秒出头,AVIF 要十秒左右,批量三百张就是干等。除非是你的服务器或者 CDN 会自动转格式,否则手动导 AVIF 我是不推荐的。还有个容易忽略的:PNG 只适合截图、logo、带纯色文字的图,同一张照片存 PNG-24 比 JPEG 质量 90 大三到五倍,不值。
色彩空间和元数据这块,是最多人栽跟头的地方。网页和绝大多数 App 的显示基准是 sRGB IEC61966-2.1,Adobe RGB 和 ProPhoto RGB 的色域更大,但一旦接收端不认配置文件,就会按 sRGB 硬解,结果就是颜色变淡或者发飘。我的做法是导出前统一转 sRGB,转完再用「转换为配置文件」而不是「指定配置文件」,这两个在 PS 里就差一个字,效果天差地别。另外 EXIF 里有个 Orientation 方向标签,iPhone 拍的图旋转信息是写在这里的,部分老系统和后台不读这个标签,你的竖图传上去就会躺倒,所以批量处理时我一般直接「旋转并应用」再删掉方向标签。还有个细节,PS 里的「存储为 Web 所用格式」(Ctrl+Shift+Alt+S)会自动剥掉元数据,而「导出为」会保留,同一张图我测过能差出 40 多 KB,体积敏感的场景就别用「导出为」了。
各平台的参数我整理了一下,是我自己反复试出来的,不是官方文档:
- 微信朋友圈:长边控制在 1080 左右,超过会二次压缩,发原图也未必真原图
- 微信公众号正文:宽度 1080,封面图 900x383(2.35:1)那条最稳
- 小红书:竖图 3:4,1242x1656,首图别放小字,压完就糊
- 淘宝主图:800x800 或 1200x1200,白底要修到 255 纯白,详情页宽度 750
- 社群海报:1080x1920,文字至少 40px 起,不然缩完看不清
批量处理这件事,如果只处理十几张,PS 的「文件 - 脚本 - 图像处理器」够用了,能同时出 JPEG 和 PSD,还能跑动作。上到几百张我一般用 XnConvert 或者 ImageMagick。XnConvert 是免费的,支持五百多种格式,图形界面,给不写代码的人用最省事。习惯命令行的话,ImageMagick 一条命令搞定:
magick mogrify -path ./out -resize "1080x1080>" -colorspace sRGB -strip -quality 88 -sampling-factor 4:2:0 *.jpg
这里有两个坑得说一下。-strip 会把 ICC 配置文件一起删掉,如果原图是 Adobe RGB,你得先转再删,顺序反了颜色就等着跑偏。-sampling-factor 4:2:0 是色度抽样,能省不少体积,但会让红色和蓝色的边缘发虚,如果图里有红色文字或者红色 logo,改成 4:4:4 更保险。Windows 下命令里的 > 是重定向符号,得加引号包起来,不然它会给你在目录里建个文件,这个我踩过,排查了半天。
最后还是想说个观点上的事。我不太认同「一张图走天下」这种思路,一张原图按平台反推出三个版本才是我现在的常规操作:详情页版(长边 1600、质量 85、无锐化)、主图版(1200x1200、质量 92、强锐化)、社群版(1080 长边、质量 88、轻锐化)。听起来麻烦,但一次建好动作或者预设,后面就是点一下的事。图片加工在我这儿更像是一次「交付」而不是一次「创作」,你得先知道图的终点在哪块屏幕上,再回头决定路上要丢掉什么。那次详情页发灰之后我才明白,我们丢掉的每一分信息,用户都会以另一种方式看到。