图片加工后发灰发糊?聊聊色彩空间和导出参数(附我一直在用的数值)
先交代背景。我在一家做家居用品的小公司做运营,业余接点淘宝小店的拍图活儿,机器是索尼 A7M3,配 50mm 1.8,两盏 400W 影室灯。修图用 Photoshop 2024 和 Lightroom Classic 13,偶尔手机上的 Snapseed 收个尾。
真正让我头疼的不是拍,是修完发出去之后画面变了。同一张图,我在 MacBook Pro 上看是干净的米白,打包发给客户,客户截了个图回来:你这怎么发灰啊,是不是没调色。我一开始还嘴硬,说可能是你手机屏幕的问题。后来拿手边那台安卓机一看,确实灰,而且糊。
那一周我基本没干别的,把色彩管理的东西从头捋了一遍。下面这些是踩完坑整理出来的,没什么高深理论,都是能直接抄的参数。
一、大部分「发灰」,是色彩空间没对齐
iPhone 从 iPhone 7 开始,拍出来的照片默认就是 Display P3,不是 sRGB。你在手机上用各种修图 App 处理,工作空间经常也是 P3。
P3 的色域比 sRGB 大一截,同样是 255,0,0,在 P3 里对应的绝对颜色比 sRGB 更红更艳。问题出在显示端:很多软件(尤其是国内那几个社交 App)会直接把图片里的 RGB 数值当作 sRGB 来解释,忽略掉文件里嵌的 ICC 配置文件。一张 P3 图被当 sRGB 渲染,颜色数值没变但含义缩水了,看上去就是整体发闷、发灰。反过来也一样,一张 sRGB 的图在 P3 屏上被强行拉满显示,会艳得不像话,红脸蛋能红成猴屁股。
所以不管修图时用什么空间,导出给别人之前,统一转成 sRGB IEC61966-2.1,并且勾上「嵌入配置文件」。转空间是给不认识 profile 的软件兜底,嵌 profile 是给认识 profile 的软件兜底,两头都堵上。
这里有个容易点错的地方:Photoshop 里「编辑 → 转换为配置文件」(Convert to Profile)会重新计算像素数值,而「指定配置文件」(Assign Profile)只改变解释方式、不动数值。前者是你要的,后者是给修错了想抢救用的,别搞混。
二、8 位和 16 位,不是玄学
8 位/通道意味着每个通道只有 256 级,RGB 三通道加起来约 1677 万种颜色。看着挺多,但你只要拉一次曲线、压一次高光,相邻色阶之间的空隙就被拉开了,天空那种大面积渐变最容易出现一圈一圈的色带。
16 位/通道是每通道 65536 级,理论上总色数约 2.8×10¹⁴。实际好处没那么夸张,但拉曲线、做蒙版过渡的时候确实更抗造。
我的做法是:Camera Raw 里打开就是 16 位,全程在 16 位下修,只有导出那一步才转回 8 位。因为 JPEG 格式本身只支持 8 位,这一步躲不掉。PSD 和 TIFF 存档的时候保留 16 位,别嫌文件大。
三、导出参数,直接照抄
这是我目前给电商客户用的 JPEG 导出设置,PS 和 Lightroom 都适用:
- 格式:JPEG
- 色彩空间:sRGB IEC61966-2.1
- 嵌入配置文件:勾上
- 位深度:8 位/通道
- 重新采样:两次立方(较锐利)(缩减)—— 英文是 Bicubic Sharper (reduction),缩图专用,比默认的「两次立方」更保边
- 长边:公众号正文 1080-1600px,朋友圈和私聊 1080px,淘宝主图 800×800 或 1000×1000,详情页 750px 宽
- 品质:Lightroom 里用 80-85;Photoshop 的「存储为」是 0-12 档,我用 9-10
关于质量滑块,有个反直觉的点:JPEG 从 100 往下调到 90,画质几乎看不出变化,体积能掉一半;从 90 掉到 80,仔细看能看出一点点;掉到 70 以下,8×8 的块状伪影就开始冒头了,尤其是纯色背景和大光比边缘。所以 75 以下我基本不碰,除非是发给别人看个大概的预览图。
还有一个流传很久的说法:导出要设成 72 DPI。这个真没用。DPI 只在打印的时候才有意义,屏幕显示只看像素数。你在 PS 里把 3000×2000 的图改成 72 DPI,它还是 3000×2000,一个像素都没少。设 300 是为了打印时换算物理尺寸用的。
四、锐化的顺序错了等于白做
我一开始的习惯是打开图先锐化一下,看着舒服,然后调色、缩放、导出。结果就是:缩放之后锐化的效果全没了,还因为缩放算法把锐化产生的高反差边缘重新采样,出来一圈白边。
正确的顺序是:调色 → 降噪 → 缩放 → 锐化 → 导出。
锐化的参数看内容。产品图(比如杯子、木器这种硬边的东西)我用 USM 锐化:数量 60%-80%,半径 0.6-1.0 像素,阈值 2-4 色阶。人像要轻,数量 30%-40%,半径 1.0,阈值 0 或者 1,或者干脆用「智能锐化」把「减少杂色」拉到 15%-20%。阈值这个参数很多人不用,它的作用是让锐化跳过那些色差小于阈值的平坦区域,能省下不少噪点。
五、一次要处理 200 张,别一张张点
我接过一次 180 多张的餐具图,一张张点导出点到怀疑人生。后来改成两条路:
一条是 Lightroom 的导出预设,调好一次存下来,之后全选直接跑。缺点是 Lightroom 的降噪和局部调整还是不如 PS 细。
另一条是命令行,用 ImageMagick 7,一行搞定:
magick mogrify -path ./out -resize 2048x2048\> -profile /path/sRGB.icc -quality 82 *.jpg
这里 2048x2048 后面那个反斜杠是必须的,不然 shell 会把 > 当成重定向,直接把你目录里的文件覆盖掉,别问我怎么知道的。-profile 那一步是套用色彩配置文件,建议显式指定,别指望它自己猜。
(没用过命令行的话,图形界面可以用 XnConvert,免费,Windows 和 macOS 都有,批量加水印、改尺寸、转格式都行,200 张大概跑十几秒。)
六、几个被说烂了的误解
第一个:PNG 一定比 JPEG 大。不一定。纯色块、UI 截图、带文字的海报这类图,PNG 经常反而更小,而且不会糊。照片类才必须用 JPEG。
第二个:WebP 全面碾压 JPEG。同画质下 WebP 一般能小 25%-35%,这个是真的。但有些老的政务系统、内部 OA、还有个别打印店的机器不认 WebP,发给不熟的人还是老实发 JPEG。
第三个:「发原图」就不会被压缩。微信发原图确实能保住更多细节和 ICC 配置文件,但也不是完全原封不动。我实测过一次,一张 4000×3000 的图走普通发送,对方保存下来长边大概只剩 1200 出头;勾了原图,基本能保住 4000。差了三四倍,重要图一定要勾。
写完了。这些参数是我自己一直在用的,不保证每个平台都一模一样,平台自己也在改。你要是发现哪个数跟我说的对不上,以你实测的为准——毕竟色彩管理这东西,最靠谱的验证方法就是自己传一遍再下载回来,用取色器看数值。我用这个方法纠正过至少三次自己的想当然。