Shell工具(10)——图片批处理
创作者俱乐部成员
有一次想用宏把多张表格导出成图片,但翻遍文档,只找到另存为PDF的选项,没有另存或导出图片格式的选项。。。
那么有没有批量处理大量PDF和图片,进行转换、裁剪、合并、编辑等操作的工具呢?
imagemagick,就是今天要介绍的图片批量处理工具了,想必大家都熟悉Photoshop,但ps的批处理实在难用,imagemagick则可以通过简单的命令加参数,完成大多数ps的常用功能。
下面是一些例子:
先用宏,可以把表格另存为pdf文件
💡 | ThisWorkbook.SaveAs(`${ThisWorkbook.Path}\\aaa.pdf`, 103) |
然后用magick里的convert命令裁剪掉白边,转换成png图片
📌 | magick.exe convert -density 300 -trim aaa.pdf out.png |
其中,trim参数是要求裁剪白边,density是设置从pdf转图片时的图像采样率
而这句命令,可以放在宏里另存pdf之后,用shell命令执行,也就可以间接实现,通过宏从表格批量导出图片
magick既然号称能够完成绝大多数ps的功能,那可以玩花活的可就多了😁
各种图片格式之间的转换,只需要convert 源文件 目标文件,就可以了
需要裁剪、缩放,只需要在convert里使用参数,crop和resize
需要合并多张图片,还是在convert里,横向合并用+append,纵向合并用-append,图层叠加合并用-composite
需要添加水印,用上面的-composite叠加一张图片也行,用-annotate添加文字水印也行
至于锐化模糊饱和度等,工作中不常用,用的时候问一下ai就可以偷偷懒
再来个好玩的,抠掉左上角(20, 20)位置的点的类似颜色,相当于设为透明色
💡 | magick.exe convert -fuzz 8% -fill none -draw "color 20,20 replace" a.jpg b.png |
其中,fuzz设置颜色类似的程度,fill none或者transparent都是填充透明色
总的来说,magick这个命令可以方便的编辑图片,通过写脚本或者写入宏的Shell,可以实现批量自动的处理,非常方便