ImageMagick是一个免费的创建、编辑、合成图片的开源软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。
ImageMagick官网:http://www.imagemagick.org/
与ImageMagick功能类似的还有GraphicsMagick,GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。
GraphicsMagick官网:http://www.graphicsmagick.org/
基于我主要的需求是图片合成(多张图片合成一张图片),且ImageMagick官网有着直接的命令操作教程,所以优先考虑了使用ImageMagick,查看资料过程中发现GraphicsMagick在某些特性上优于ImageMagick,等后期在做考究,且GraphicsMagick衍生于ImageMagick,熟悉了IM,GM想必不在话下。
言归正传吧。
我使用的是mac机器,刚开始,我是按照官网的步骤下载tar包到本地,然后解压,再配置一些环境变量,后来在使用时候,总是报错。
报错主要是如下两种:
1 no decode delegate for this image format `JPEG’
2 Abort trap: 6 imagemagick
针对第一种错误,搜索资料大多要求你去下载jpeg的delegate,针对第二种错误,却基本找不到方案。
无奈,只好按照官网上推荐的homebrew方式来安装了。
homebrew是啥呢?
可以参考这里https://brew.sh/
通过这种方式成功安装且可以正常使用。
步骤1:下载XQuartz-2.7.11.dmg
下载地址:https://www.xquartz.org/
步骤2:安装homebrew
shell中执行如下命令
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
步骤2 要在非root用户下执行
步骤3 执行命令
brew install imagemagick
至此,imagemagick已经成功安装。
homebrew方式安装的imagemagick路径默认在/usr/local/Cellar路径下
使用imagemagick拼接图片:
执行如下命令:将 a.jpg 放到test.jpg 图片的中间位置(center控制)并保存为b_over.gif格式
composite -gravity center a.jpg test.jpg b_over.gif
上条命令是通过center控制目标图片放置的位置,但是通常我们可能希望放到特定的位置,怎么办呢?
convert test.jpg a.jpg -geometry +75+180 -composite d_over.jpg
通过convert命令的-geometry 两个参数来控制目标图片位置,+75代表将a.jpg 的左顶点放到test.jpg左顶点 向左75pix,向下180pix