ImageMagick命令行图片工具:批量实现格式转换与压缩,支持水印添加及GIF动态图合成
之前跟你们聊过能高效测接口的 Postman,今天换个偏向图片处理的方向 —— 给你们安利一个 Github 上的「ImageMagick」,它是个命令行图片处理工具,官网能下载安装包(ImageMagick | Mastering Digital Image Alchemy),Github 仓库(https://github.com/ImageMagick/ImageMagick)里也能看到源码和使用文档,不管是批量压缩图片大小、转换图片格式,还是给图片加水印、裁剪尺寸,一行命令就能搞定,比打开 PS 反复操作快太多。小索奇上次帮运营同事处理公众号配图,要把 20 张 10MB 的 JPG 图压缩到 2MB 以内,用它输了一行循环命令,1 分钟不到就全压好了,画质还没明显模糊,比一张张用 PS 导出省了快半小时!
你有没有过处理图片时 “重复操作到崩溃” 的经历?比如想把一批 PNG 图转成 JPG 格式,打开 PS 得一张一张导入、导出,还得手动改保存路径;或者想给 100 张产品图加同样的水印,得先做个水印模板,再一张一张叠加,操作到手指发酸;又或者手机拍的照片尺寸太大,发朋友圈提示 “文件过大”,得用 APP 一张张压缩,还担心压缩后画质变差。但用 ImageMagick 就没这些麻烦,比如批量转格式,在命令行里输 “magick convert .png -format jpg -quality 90 %d.jpg”,“.png” 表示当前文件夹所有 PNG 图,“-quality 90” 是设置 JPG 画质(0-100,数字越高越清晰),“% d.jpg” 是按顺序命名输出的 JPG 图,回车后等着就行。小索奇上次处理公司活动的 30 张现场照片,用这个命令把 PNG 转成 JPG,还顺便压缩了大小,全程不用盯电脑,等处理完直接用就行。
而且它支持的图片操作特别多,除了转格式、压缩,还能裁剪、旋转、加滤镜,甚至能合成图片。比如你想把一张图片裁剪成正方形(比如从中间裁出 800x800 像素),输 “magick convert 原图片.jpg -gravity center -crop 800x800+0+0 裁剪后.jpg”,“-gravity center” 表示从图片中心开始裁,“800x800+0+0” 是裁剪尺寸和偏移量;想给图片加文字水印,输 “magick convert 原图片.jpg -fill black -pointsize 24 -draw "text 10,30 ' 小索奇的图片 '" 加水印.jpg”,“-fill black” 是水印颜色,“-pointsize 24” 是字体大小,“text 10,30” 是水印在图片上的位置(距离左边 10 像素、上边 30 像素)。小索奇上次给自家公众号的封面图加水印,用这个命令调了几次位置和颜色,很快就搞定了,比用 PS 调图层方便多了。
说到这儿可能有人会问:“命令行操作会不会很复杂啊?我记不住这么多参数怎么办?” 其实常用的操作就那么几个,而且网上有很多 “ImageMagick 常用命令对照表”,你可以存一份在电脑里,要用的时候对着查就行。比如小索奇就把 “批量压缩”“加文字水印”“裁剪正方形” 这几个常用命令存在记事本里,每次用的时候复制粘贴,改改文件名和参数,完全不用死记硬背。而且它的命令格式很规律,基本都是 “magick convert 输入文件 操作参数 输出文件”,熟悉一次后,就算是新操作,搜一下参数就能上手,新手也能快速用起来。
它还有个超实用的 “批量处理 + 自定义参数” 功能,比如你想把不同尺寸的图片统一压缩到 “宽度不超过 1000 像素,高度按比例缩放”,不用手动算比例,输 “magick convert 原图片.jpg -resize 1000x 缩放后.jpg”,“1000x” 后面不写高度,软件会自动按原图片的宽高比计算高度,保证图片不会变形。小索奇上次处理公众号的封面图,不管原图片是横版还是竖版,用这个命令缩放后,宽度都统一成 1000 像素,排版特别整齐,不用再一张张调尺寸。要是你想批量给图片加边框,输 “magick convert *.jpg -bordercolor white -border 20x20 加边框_% d.jpg”,“-bordercolor white” 是边框颜色,“-border 20x20” 是边框宽度(上下左右各 20 像素),处理完的图片都带着整齐的白边框,视觉效果立马不一样。
另外,它还能处理动态图片,比如把多张静态图合成 GIF,或者修改 GIF 的播放速度。比如你有 3 张 “1.jpg”“2.jpg”“3.jpg” 的图片,想合成一个每秒播放 1 帧的 GIF,输 “magick convert -delay 100 -loop 0 1.jpg 2.jpg 3.jpg 合成.gif”,“-delay 100” 是每张图停留 100 毫秒(即每秒 1 帧),“-loop 0” 是无限循环播放。小索奇上次给朋友做生日祝福的 GIF,用手机拍了 5 张不同的手势图,用这个命令合成后,效果特别好,朋友说 “比用 APP 合成的还流畅”。
你们平时处理图片的时候,有没有遇到过 “批量操作麻烦”“格式转换费时间”“担心画质受损” 的情况?或者有没有用过其他图片处理工具?可以在评论区跟小索奇聊聊,其实 ImageMagick 看着是命令行工具,但常用功能一点都不复杂,学会几个命令就能解决大部分日常图片处理需求,比装 PS 还省空间,效率还高,对吧?
搜索关注【即兴小索奇】,获取更多好用工具和资源