图片加工:先调色还是先改尺寸?我用 2147 张照片试出了正确顺序

关键词:图片加工,图片尺寸调整,图片压缩,WebP格式,批量修图

摘要:从一次 2147 张照片的返工经历说起,拆解图片加工的正确操作顺序、各平台真实尺寸要求、JPEG/WebP/AVIF 的实测差距,以及批量处理的命令行方案和 AI 修图的边界。

先说我干过的一件蠢事

图片

2013 年那会儿,朋友让我帮她整理一批旧照片,一共 2147 张,iPhone 5c 和一台小米 2S 混着拍的。我当时的做法是:先一张张调色,拉对比、去雾、加一点点暖调,全部弄完再批量导出。导出到一半才发现尺寸不对,又开了个工具重新缩了一遍。结果是照片被重采样了两遍,锐度掉得肉眼可见,头发边缘全是锯齿,天空还出现了色带。那天干到凌晨两点半,第二天整批重做。

这件事让我彻底改了一个习惯:图片加工的第一次操作,应该是确定输出终点,而不是调色。 你把 4000×3000 的图精调完色再缩到 1080×810,等于在 1200 万像素的尺度上做了大量细致调整,最后扔掉 90% 的像素,那些调整大部分也跟着被扔了。更别提两次重采样叠出来的模糊。

顺带一提,那批照片的 EXIF 里带着拍摄地的 GPS 坐标。朋友要发到二手平台上,我帮她 -strip 掉了才发现,她自己完全不知道照片里有这个。

输出终点怎么定:几个能直接抄的数字

先给结论,对着抄就行,不用记原理:

图片

  • 微信公众号:正文图宽 1080px,超过就被后台压。封面首图 2.35:1 是 900×383,1:1 那个是 200×200,小得离谱,别指望清晰。
  • 淘宝/天猫主图:现在建议 1200×1200,官方最低 800×800。白底图背景色值要 RGB 255,255,255,不是 254 也不是 250。
  • 小红书:竖图 3:4 是 1242×1656,方图 1080×1080。宽超过 1080 一样会压。
  • Instagram:到 2024 年仍然会把长边压到 1080px 附近,你传 4000px 上去是白搭。
  • 网页配图:按 CSS 实际显示宽度的 2 倍导(Retina 用),页面里显示 600px 宽就导 1200px。
  • 印刷:300dpi 指的是在最终成品尺寸下的像素密度。A4 满版带 3mm 出血,是 216×303mm,换算下来约 2551×3579px。

这里最大的坑是 DPI 这个参数。Photoshop 里那个「分辨率 72」对屏幕显示毫无意义,屏幕只认像素。你把一张 800×600 的图改成 300dpi,它还是 800×600 个点,打印出来该糊还是糊。真正有意义的是「像素数 ÷ 物理尺寸 = 有效 dpi」,反着推才成立。

我见过太多人在这上面绕圈:为了「高清」把 DPI 调到 600,文件涨到 50MB,发出去照样被平台压成渣。

格式选择:JPEG 已经不是默认答案了

2024 年还在无脑导 JPEG 的话,说实话有点亏。

JPEG 质量 95 和 82 的差距我实测过一批图(风光为主,细节多、渐变多):95 平均 1.8MB,82 平均 1.1MB,屏幕上并排看,放大到 200% 才能勉强在暗部找出色块差别。质量掉到 70 以下开始出现明显块状伪影,天空的渐变区首当其冲。

图片

WebP 我用了三年。Google 官方说法是同等主观质量下比 JPEG 小 25-35%,我自己测下来大概 28% 左右,但编码慢一截,而且老版本 Office 和一部分安卓 App 至今打不开。AVIF 更小,能再省 20% 上下,可编码慢得让人想砸键盘,一张 4000px 的图要好几秒,批量跑就是煎熬。

我的实际做法是分场景:

  • 要发给别人、要保兼容性的 → JPEG quality 82-88,勾渐进式(progressive),-strip 掉 EXIF。
  • 自己网站上的图 → WebP quality 80,同时留一份 JPEG 做 fallback。
  • 带透明通道 → PNG-8 只要不超过 256 色就用它,能比 PNG-24 小 60% 以上;色彩多的只能 PNG-24 或 WebP 无损。
  • 截图、UI 图、带文字的图 → 绝对别用 JPEG。文字边缘会出现彩色噪点,这是色度子采样干的,跟质量参数调多高没关系。

批量处理:命令行比鼠标快十倍

一次要处理 50 张以上,就别用鼠标点了。

图片

ImageMagick 的 mogrify 是我最常用的,一条命令扫一个文件夹:

mogrify -path ./out -resize 1200x1200\> -quality 82 -interlace Plane -strip *.jpg

那个 \> 的意思是「只在原图比目标大的时候才缩,小的原样不动」。不加的话小图会被硬放大,糊成一团,这个我踩过。

Node 项目里我用 sharp,比 ImageMagick 快不少,而且原生支持 WebP 和 AVIF:

sharp(input)
  .resize(1200, null, { withoutEnlargement: true })
  .webp({ quality: 80 })
  .toFile(out)

图片

Windows 上要图形界面的话,XnConvert 免费够用,能叠十几种操作。FastStone Photo Resizer 也行,但很久没更新了。Mac 上 Squoosh(Google 出的网页工具)单张处理很顺手,批量就别指望了。

关于锐化,我踩过最大的坑是锐化过头。USM 我一般用数量 60-120、半径 0.8-1.2、阈值 2-4。半径超过 2 会出现明显白边,人脸和天空交界的位置最容易露馅。而且锐化必须在缩图之后做——缩图本身就会损失锐度,之前锐化等于白锐。这个顺序逻辑跟调色是一个道理。

老照片修复这事儿,我得泼点冷水

2023 年 AI 修复火起来的时候,我用 Topaz Photo AI 和 GFPGAN 分别跑了那批 2013 年的照片,还有更早的、家里翻拍的 90 年代胶片。

结果是这样的:Topaz 的降噪和锐化确实可以,但人脸重建经常「换人」。GFPGAN 更明显,它会拿训练集里最常见的东亚老年女性脸去「猜」你奶奶长什么样,五官是清晰了,但那是另一个人。我给我妈看的时候她说「这不像我」,原因就在这。

所以我的观点可能不太讨喜:轻度修复(去噪、去划痕、提亮)可以用 AI,人脸重建慎用。 尤其是打算洗出来送人的照片,别用生成式修复。宁可留一点模糊,那也是本人。

图片

如果只是扫描件的划痕和灰尘,Photoshop 的「污点修复画笔」手动点,一张花 5 分钟,比 AI 乱猜靠谱得多。手机端 Snapseed 的「修复」工具也能救急。

最后,一个我坚持了三年的导出前清单

每次导出前我一定过一遍这五条:

  1. 尺寸对不对——拿输出的实际像素跟目标平台要求比,别去看 DPI 那个数字。
  2. 色彩空间是不是 sRGB——Adobe RGB 传上去会发灰,这个坑我踩过至少五次。
  3. 质量参数有没有停在默认的 100——Photoshop「存储为 Web 所用格式」里默认就是 100,文件能大一倍。
  4. 元数据strip 了没有——尤其带 GPS 的。
  5. 在手机上真的看一眼

第五条最重要。我现在所有图都在手机上最后过一遍,太多在电脑屏幕上看着挺通透的图,一到手机上暗部全黑成一坨。显示器亮度、环境光、屏幕材质,全都在骗你的眼睛。

标签: