问题场景
- 本地对图片进行快速的批量处理
解决方法
ImageMagick
一款免费开源的图片编辑软件,既可通过命令行使用,也可通过C/C++、Perl、Java、PHP、Python或Ruby调库编程使用。
可以先用 convert 修改单个文件,对结果满意的话再用 mogrify 进行批量处理
主要功能(以6.2.7版本为例)
- 批量文件格式转换
- 把当前目录下的gif转换成png后存在newdir中:
mogrify -path newdir -format png *.gif
- 把当前目录下的gif转换成png后存在newdir中:
- 批量缩放图像
- 把当前目录下的png尺寸放大到200%后存在newdir中:
mogrify -path newdir -resize 200% *.png
- 也可以指定长宽(加上!就不考虑形变的问题):
convert page200.png -resize 100x152! page100.png
- 转换时还可以指定压缩等级 -quality 95
- -scale 50% 等比例缩放
- 把当前目录下的png尺寸放大到200%后存在newdir中:
- 批量旋转
- mogrify -path newdir -rotate -90 *.png
- 左右翻转:-flop 上下翻转:-flip
- 设定背景颜色
- convert page200.png -background blue r10.png
- 截取
- convert -crop 30x30+10+10 test.png dst.png 宽x高+横坐标偏移量+纵坐标偏移量
- -trim 自动裁剪(剔除图片周围空白的部分或边框等)
- 通道
- convert -channel R -separate test.png dst.png
- 可以借助 convert 命令将多张图片组合为一张重复播放的 GIF 动图
- convert -delay 20 -loop 0 *.png out.gif 其中 -delay 选项用于指定图片切换的时间间隔,单位为毫秒。
- 组合多张图片
- convert x1.png x2.png x3.png -append out.png (垂直方向)
- convert x1.png x2.png x3.png +append out.png(水平方向)
- 添加水印
- convert image.jpg -fill red -draw “text 20 20 ‘© 2019 example.com’” out.jpg
参考
- 版本7之前的:https://legacy.imagemagick.org/Usage/
- 版本7之后:https://imagemagick.org/script/command-line-processing.php
文档信息
- 本文作者:Joeat1
- 本文链接:https://joeat1.github.io/2021/10/29/%E7%A6%BB%E7%BA%BF%E5%9B%BE%E7%89%87%E6%89%B9%E9%87%8F%E5%A4%84%E7%90%86/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)