一、前言
本文介绍了ImageMagick命令处理图片的方法,以及如何与Windows批处理结合,并以批量压缩图片为例做了简单演示。由于知识水平的局限,不妥之处还请批评指正。
二、实现思路
1、windows批处理中for命令来对文件进行批量操作。
2、ImageMagick是一款强大的图像处理软件,可以使用命令行来操作图片文件。
3、以上两者的结合使用可以实现对图片文件的批量处理。
三、ImageMagick命令举例
ImageMagick下载地址ImageMagick – Download。
详细用法可以参考官方说明Anatomy of the Command-line。
这里仅仅是共享一下最近用到的命令行(需要提前配置环境变量)写法。
1、格式转换
magick convert 1.jpg 2.jpg 3.jpg book.pdf
解释:将 1.jpg 2.jpg 3.jpg 按照顺序合并为book.pdf
2、压缩图片
magick convert -resize 700 a.png a1.png
解释:得到图片宽为700,高根据原始图片比例计算而来
3、合并两张图片
magick convert -append a1.png b1.png c1.png
解释:竖直方向合并两张图片
4、切割图片
magick convert 1.jpg -crop 200x210+10+10 1-1.jpg
解释:从1.jpg的(10,10)为起点,截取宽200像素,长210像素的的区域为1-1.jpg
5、图片上加文字
mogrify -font "Microsoft-YaHei-&-Microsoft-YaHei-UI" -pointsize 48 -fill white -weight bolder -annotate +300+100 "入参文本" 图片20210112130842.png
解释:在图片20210112130842.png的(300,100)处加上大小为48的、白色的、字体为"Microsoft-YaHei-&-Microsoft-YaHei-UI“的文字“入参文本”。
四、批量处理图片
批量处理图片就是在ImageMagick命令上套用批处理for命令及其他命令,这里以压缩图片为例。
for /f "delims=" %i in ('dir /b /a-d') do (magick convert -resize 700 %i %i)
解释:读取当前目录下(含子文件夹)所有文件,对读取的文件执行压缩为宽为700,比例不变的命令。注:以上代码在命令行执行,批处理执行需要将%i改成%%i。
如果需要判断文件后缀等操作则还需要引入分支、截取字符串等操作,这里暂不叙述。