图片加工避坑:尺寸、格式、体积这三件事,顺序别搞反

关键词:图片加工, 图片批量处理, 图片压缩, WebP格式, ImageMagick

摘要:大多数人说的图片加工其实是改尺寸、转格式、压体积这三件脏活。本文用一组实测数据和一条可复制的ImageMagick命令行流程,讲清楚像素尺寸和PPI的区别、JPEG/WebP/AVIF到底怎么选、批量处理时最容易翻车的细节。

先说一件让我有点无语的事

图片

去年帮一个做饰品的朋友处理店铺图。她拍照挺讲究,索尼 A7M3,一张原图 20 多 MB。传到平台上老是失败,提示图片过大。她的解决办法是微信发给自己再保存——微信会把它压到 200KB 左右。压完糊得连小吊坠的纹理都看不出来了。

我拿原图重新跑了一遍,同样的视觉质量,压到 380KB,清晰度还比微信版本高一截。她当时的表情就是「原来还能这样」。

这事说明一个问题。大部分人听到「图片加工」,脑子里第一反应是美颜、滤镜、抠图。但真实的日常需求里,审美向的操作可能只占一成多。剩下八成全是脏活:改尺寸、转格式、压体积、批量改名。这些活不需要审美,需要的是知道参数在哪。下面这三件事,我觉得是图片加工里最容易翻车的。

尺寸:PPI 是个骗局,别被它骗了

图片

很多人拿到图先看分辨率,Photoshop 打开一看 72 PPI,觉得太低了,赶紧改成 300。改完发现文件大小没变,像素数量也没变,什么都没变。

因为 PPI 只是个打印用的元数据标签,它描述的是「这张图打印出来每英寸放多少个像素」,不改变图像本身。真正决定清晰度的是像素尺寸:1920x1080 就是 1920x1080,标 300 PPI 还是 72 PPI,屏幕上看都一样。

那什么时候要管像素尺寸?看投放渠道。亚马逊要求主图长边至少 1600 像素,到了这个数才有鼠标悬停放大的功能,低于这个数放大功能直接不给你开。淘宝主图建议 800x800 以上,比例 1:1,最大 3MB。小红书的竖图是 3:4,1242x1656 那一档最稳。

如果只知道「改尺寸」,直接 Resize 拉大,800 像素拉到 1600 像素,边缘会发虚。正确做法是找原始大图重新导,或者用 AI 超分工具补。Photoshop 的「保留细节 2.0」在 2 倍以内还算能用,超出 2 倍就明显有涂抹感了。改尺寸时还要注意别改变宽高比,ImageMagick 里 -resize 1600x1600 和 -resize 1600x1600\> 是两个意思,后者那个大于号表示只缩小不放大,批量处理时能省掉不少意外拉伸的麻烦。

图片

格式:别默认选 JPEG

格式这件事很多人是跟着感觉走的。截图存 PNG,照片存 JPEG,完事。但实际场景比这个复杂。

我用一组 2400x1600 的商品图做过对比测试,同一张图不同输出:JPEG 质量 90 是 418KB,JPEG 质量 85 渐进式是 296KB,WebP 质量 85 是 212KB,AVIF 质量 60 是 168KB。肉眼在 100% 缩放下几乎看不出差别。放到 200% 看,AVIF 的边缘会有一点点平滑,JPEG 质量 85 的细节保留反而更好一点。

所以结论不是「用最新的格式就好」。要看用途。如果是网页,WebP 现在主流浏览器都支持了,比 JPEG 省 25% 到 35% 的体积,直接上。AVIF 更省,但编码慢,老设备解码也有开销,一般用在首屏大图。如果是投稿给平台或者发给甲方,老老实实 JPEG,很多审核系统和 OA 系统对 WebP、AVIF 的支持并不好,发过去打不开反而耽误事。如果是带文字的截图、界面图、logo,用 PNG 或者 WebP 无损,JPEG 处理文字边缘会产生彩色噪点,这个很常见。

还有一个被忽略的操作:去掉 EXIF。照片里的 GPS 位置、相机型号、拍摄时间都藏在这里面,既涉及隐私也占体积。一张 iPhone 拍的图,EXIF 大概有 15 到 30KB,批量 -strip 一下,几百张图能省出几 MB。

图片

批量:三个命令解决九成问题

处理单张图,任何工具都能干。真正的效率差距在批量。我现在的流程基本是三步,用 ImageMagick 命令行。

第一步,统一尺寸并且只缩不放:

magick mogrify -path ./out -resize 1600x1600\> -strip *.jpg

图片

那个反斜杠是防止 shell 把 > 当成重定向。第二步,转 WebP:

magick mogrify -path ./webp -format webp -quality 82 *.jpg

第三步,检查有没有漏网的超大文件:

find . -size +500k -name "*.jpg"

图片

三行命令,1000 张图大概跑两分钟。比起开 Photoshop 批处理、设置动作再导出,这个流程省时间的地方在于不用点鼠标。不想碰命令行的话,XnConvert 是免费里比较好用的,支持拖拽、批量改名、批量加水印。Squoosh 是 Google 出的网页工具,适合单张调参,但没有批量功能。Pillow(Python)适合要写脚本的场景,Image.open().resize() 加 save(optimize=True),代码量也不大。

最后提醒一句

压缩完一定要抽样看几张,别全靠脚本跑完就交差。我遇到过一次,一批图里有几张是 CMYK 色彩模式的,转成 WebP 之后颜色整个偏了,蓝色变成紫色,那个是我自己没检查,重新导出才发现的。

还有个顺序问题:先改尺寸,再转格式,最后压质量。反过来先压质量再放大,等于把损失放大了一遍。这个顺序搞反了,画质掉的不是一点半点。

标签: