图片加工怎么批量处理?被Photoshop坑掉400张图之后,我把参数全记下来了

关键词:图片批量处理,图片压缩参数,WebP转换,ImageMagick批量改尺寸,图片加工教程

摘要:一个业余电商图工的真实翻车记录:400张图被PS批处理搞崩之后,我改用命令行+固定参数,从3小时压到8分钟。附淘宝、小红书、公众号的具体尺寸表和压缩参数。

先说个丢人的事

图片

2023年10月底,我给一个做猫粮的朋友处理双十一主图,四百多张,手机和老单反混着拍的。文件名从 IMG_2231.JPG 到 DSC_0877.NEF 乱七八糟,一半是竖着拍的,导进电脑全是躺着的。我当时想得挺简单:Photoshop 录个动作,批处理一下不就完事了。

结果跑到第 137 张,弹了个「暂存盘已满」,直接崩。重启之后发现动作里「存储为」的路径记的是上一版,覆盖掉二十多张原图。那天晚上两点半我坐在椅子上看着进度条,第一次觉得用 PS 干批量这件事有点蠢。

后来我用 ImageMagick 重写了一遍,同样这批图,从纠偏、裁切、压缩到改名,8 分 12 秒跑完,峰值内存不到 600MB。下面写的都是这三年踩出来的,不推工具,只说参数和数字。

一、「图片加工」这词太大,先分清你到底在干嘛

新手最容易犯的错,是拿一把锤子敲所有钉子。我见过有人用 PS 的「存储为 Web 所用格式」去处理 5000 万像素的 RAW,也见过有人用美图秀秀给商品图抠白底。加工其实就五件事:纠偏转正、裁切构图、缩放、压缩、去背。前四件能全自动,第五件只能半自动。

判断标准很简单:如果你的需求能用一句话说清(「全部变成 1200×1200 白底方图」),那就别开 PS。如果需求是「这张图左边那个模特手上有点脏东西」——那就老老实实手动,一小时搞五张,别指望批处理。

我现在的习惯是先花十分钟把所有图过一遍,分成 A(能批处理)和 B(要手修)两个文件夹。这一步能省掉后面百分之八十的返工。

图片

二、尺寸和格式:直接抄这张表

尺寸这件事没那么多玄学,各家平台都有官方文档。我按自己接过的活整理了一份,直接上表:

用途 尺寸 格式 实际压到
淘宝/天猫主图 1200×1200(最小800×800) JPEG 150–250KB
详情页 宽 750px,单张高 ≤1500px JPEG 200–300KB
小红书封面 1242×1656(3:4) JPEG/WebP 250KB 以内
抖音视频封面 1080×1440 JPEG 200KB
公众号头图 900×383(2.35:1) JPEG 200KB
网页 Hero 图 1920×1080,2x 出 2560 WebP/AVIF 100–200KB

注意两个坑。第一,淘宝主图虽然标 800×800 起,但你按 800 出,在 2 倍屏的手机上就是糊的,直接按 1200 出,反正压完也就 200 多 KB。第二,公众号头图在苹果手机和安卓上裁切位置不一样,重要的字别放在左右各 15% 的区域里,会被吃掉。

三、批量处理:PS 动作 vs 命令行

PS 动作能跑,但有两个硬伤。一是它是有状态的,前一张图没处理完不会进下一张,遇到一个损坏文件就卡死;二是它吃内存,处理 4000 万像素的图,20 张就能把 16G 的机器干趴下,那个「暂存盘已满」就是这么来的。

图片

ImageMagick 是一条命令处理一张,互不干扰,崩了也不影响别人。核心那条我用了两年多,没换过:

magick mogrify -path ./out \
  -auto-orient \
  -resize 1200x1200^ -gravity center -extent 1200x1200 \
  -strip -interlace Plane -quality 82 \
  *.jpg

拆开说:-auto-orient 读 EXIF 里的方向标签自动转正,没有它你会得到一文件夹躺着的图;1200x1200^ 那个尖角号是「填满」的意思,先按短边缩到 1200 再裁;-extent 补成正方形;-strip 去掉元数据;-interlace Plane 是渐进式 JPEG,网页上会一行行刷出来而不是白屏等;-quality 82 后面细说。

有个坑几乎人人踩:ImageMagick 有份 policy.xml,默认把内存上限卡在 256MB,路径在 /etc/ImageMagick-6/policy.xml,Mac 用 Homebrew 装的话在 /opt/homebrew/etc/ImageMagick-7/policy.xml。处理大图时报「cache resources exhausted」就是它。改成 2GiB,或者命令里加 -limit memory 2GiB

如果你的图要走网页,用 Node 的 sharp 更省事:

await sharp('in.jpg')
  .rotate()
  .resize(1200, 1200, { fit: 'cover', position: 'attention' })
  .webp({ quality: 80, effort: 5 })
  .toFile('out.webp');

position: 'attention' 会自动找画面里「有内容」的那块来裁,比死板居中强。代价是慢,400 张要等三分钟左右,急着出图就换回 'centre'

图片

四、压缩参数:82 这个数我试了三年

JPEG 的 quality 从 100 降到 82,体积大概能掉 60%,肉眼基本看不出。降到 70 开始,纯色渐变的天花板、皮肤过渡会出现色块,尤其是米色和浅灰。我现在所有电商图统一 82,有文字的产品图单独提到 88。

还有个参数很少人提:色度抽样。JPEG 压缩时会把颜色信息降采样,4:2:0 是颜色信息砍一半,体积小;4:4:4 是全保留。白底黑字、包装上印小字的图,用 4:2:0 导出,红字边缘会发虚甚至发绿。Command 里加 -sampling-factor 4:2:04:4:4,PS 里在「存储为 Web 所用格式」右上角那个小箭头里调。

格式上,WebP 同画质比 JPEG 小 25%–34%,这是 Google 自己给的数据,我实测差不多。AVIF 还能再小 20% 左右,但安卓老机型和 Safari 15 以下打不开,上生产环境前一定挂 <picture> 兜底。

PNG 转 WebP 有个坑:有损 WebP 默认会把透明区填成黑色或者留一圈白边。要加 -background none -define webp:alpha-quality=90,或者 sharp 里用 .webp({ lossless: false, alphaQuality: 90 })。我第一次没注意,导出去一百多张商品图,全带黑框,重新跑了一遍。

五、去背和放大:别信「一键」

去背这事,PS 2024 的「选择主体」进步很大,但遇到长毛猫、毛绒玩具、纱质衣服就翻车,边缘糊一圈半透明灰。我的参数是:选择并遮住里,边缘检测半径 1.5–2.5px,移动边缘拉到 -10% 到 -20%,输出设置勾「净化颜色」,数量 40%–60%。做完之后建一个纯白层和一个纯黑层分别衬底检查,两遍都干净才算过关。

图片

放大更要说清楚。PS 图像大小里「保留细节 2.0」在 150% 以内还行,200% 以上细节就是编出来的。Topaz Gigapixel 放 4 倍,条形码、发票编号、包装上的小字会糊成一团形状像字的色块。

去年有个客户拿 800×800 的主图让我放大到 3000 做详情页,包装上印的「生产日期见喷码」变成了笔画乱码,他拿去上架被平台判了「图片信息不符」。AI 补的是「看起来像字」的东西,不是字。产品图、证件、带文字的包装,放大别超过 150%。

六、颜色和元数据:两个静悄悄的坑

导出前一定转成 sRGB IEC61966-2.1,PS 里走「编辑 > 转换为配置文件」,不是「指定配置文件」,这俩不一样。用 Display P3 导出的图,在安卓机上红色会艳得离谱甚至溢出,我见过一个卖口红的图,正红色直接变成荧光橘。

另外,手机拍的图默认带 GPS 坐标。批量加 -strip 能去掉,但要注意 -strip 也会一起干掉 ICC 配置文件——所以顺序得是先转好 sRGB,再 strip,别反过来。

顺手提个查元数据的命令,排查问题很好用:

图片

exiftool -Orientation -ProfileDescription -GPSPosition *.jpg

EXIF 的 Orientation 是 1 到 8,手机竖着拍存的是横向像素加一个「转 90 度」的标签。很多网页框架不读这个标签,图片就直接躺着显示。所以转正这一步必须在服务器端做掉,别指望前端。

七、我现在的固定流程

  1. 原图单独放 originals/,设成只读,谁都别动,包括我自己;
  2. 跑一遍 exiftool,看方向标签和色彩配置文件有没有异常;
  3. 统一转正 + 转 sRGB;
  4. 按用途裁切,一律用 cover 填满,不用 contain 留白——留白比裁掉难处理得多;
  5. 缩放,缩小用 Lanczos,PS 里对应「两次立方(较平滑)」;放大选「保留细节 2.0」;
  6. 补锐化,USM 半径 0.6–0.8、数量 70–110、阈值 2–4,对应命令行 -unsharp 0x0.8+0.8+0.02
  7. 导 JPEG q82 渐进式,纯照片 4:2:0,带文字 4:4:4;
  8. 再导一份 WebP q78,网页端用 <picture> 挂上。

最后说个反常识的

很多人以为客户要的是「高清」,其实他们要的是「加载快、看着清楚」。我做过一次小样本的 A/B,同一批产品图,一组压到 180KB,一组 780KB,前者的详情页平均停留时长多了 11 秒。用户不放大看你的图,他们滑过去。

所以图片加工的核心不是修得多漂亮,是规则化。一套能复用的命名加尺寸加压缩参数,比你会二十种抠图技巧值钱。如果你现在还是每次一张张手动导,问题不在软件,是你没把参数写下来。写下来,存成一个 .sh 文件,下次直接跑。

标签: