我为什么要折腾批量图片加工?
上个月帮朋友拍了一场婚礼,回来一看,1280张照片,RAW+JPEG双格式,总共78GB。 朋友要我在周末前把精选的300张发给他,要求:每张加水印,长边不超过1920像素,文件大小控制在2MB以内。 我一开始想用Photoshop的动作批处理,结果我的老笔记本(i7-9750H,16GB内存,512GB SSD)跑了45分钟,只处理了200张,还崩了3次。 更气人的是,PS输出的图片,有些明明质量设了80%,但文件还是3MB多,不知道它怎么算的。
试了一圈工具,说说真实感受
我先试了在线工具,比如iLoveIMG和TinyPNG,前者加水印要会员,后者只能压缩不能加水印。 然后试了XnConvert 1.95,免费开源,支持500多种格式,批量加水印没问题,但它的压缩算法有点迷,同样设80%质量,出来的文件比PS还大。 接着试了FastStone Photo Resizer 4.6,这个软件很小众,界面像上个世纪的,但功能贼全,而且处理速度飞快。 我还试了ImageMagick命令行,确实快,300张图3分钟搞定,但那个-watermark参数我查了半小时文档才搞明白。 最后还试了一个叫"图片批量处理大师"的国产软件,装了之后发现捆绑了3个全家桶,果断卸载。
我的最终方案:FastStone + 一套参数
如果你跟我一样,不想学命令行,又嫌PS太慢,可以试试FastStone Photo Resizer。 下载去官网,选"个人免费"那个版本,安装时注意取消勾选"推荐软件"。 打开后,点"批量转换",把300张照片拖进去,输出格式选JPEG,质量设82%。 然后点"高级选项":勾选"调整大小",设长边1920像素,勾选"保持比例";勾选"添加水印",选文字水印,输入"©2024 老张",字体Arial,大小24,颜色白色,透明度40%,位置右下角。 最后点"开始",我的笔记本处理300张用了8分12秒,输出文件夹从2.1GB变成了478MB,画质在手机上看完全够用。 如果你要批量重命名,比如加前缀"wedding_",也在高级选项里设,很方便。
一个反直觉的独立观点
很多人觉得命令行工具是给程序员用的,但我实测下来,ImageMagick反而是最"傻瓜"的。
因为它的参数一旦写好,就可以存成脚本,以后一键运行,永远不会点错。
比如我写了一个batch.sh,内容就一行:magick mogrify -path ./output -resize 1920x1080^ -gravity southeast -draw "image Over 0,0 0,0 'watermark.png'" -quality 82 *.jpg。
注意那个^符号,表示按短边缩放,能保证长边不超过1920,同时短边自动适应,不会变形。
还有-quality 82,我对比过,82%是画质和体积的甜点,再低就有肉眼可见的块状了。
但ImageMagick对HEIC支持不好,我iPhone拍的HEIC要先转成JPEG,用heif-convert命令,一次转300张大概2分钟。
最后说点大实话
别信那些"AI一键批量处理"的广告,我花199买了一个月的某AI工具,结果它只是把图片上传到服务器,用waifu2x算法放大,再加个水印,速度还没我本地快。 而且上传私密照片到第三方服务器,风险很大,我朋友就遇到过照片被拿去训练模型的事。 所以我的建议是:日常少量处理,用系统自带的"照片"应用或者在线工具就行;超过50张,老老实实用FastStone或者XnConvert;如果你要长期、大量、自动化处理,花一个下午学一下ImageMagick,绝对值得。 工具没有好坏,只有适不适合你的工作流。我最后留下了FastStone和ImageMagick,一个用来快速搞定,一个用来写脚本。