通过imagemagick的convert命令来处理。
将多个图片横向拼接(宽图):
convert +append 1.jpg 2.jpg all.jpg #人为指定顺序 convert +append *.jpg all.jpg #按照系统排序,所以先“ls -l”一下确认顺序正确再执行
将多个图片纵向拼接(长图):
convert -append 1.jpg 2.jpg all.jpg #人为指定顺序 convert -append *.jpg all.jpg #按照系统排序,所以先“ls -l”一下确认顺序正确再执行
将多个图片合成一个PDF文件(缺点:会将图片按比例拉升缩放,所以如果源图片比例不统一,最后生产PDF文档内容不整齐):
convert *.jpg +compress all.pdf
按指定顺序及位置拼接(如下面示例将四个256小图拼接成一个512大图):
convert -size 512x512 -strip -colors 8 -depth 8 xc:none u0.png -geometry +0+0 -composite u1.png -geometry +256+0 -composite d0.png -geometry +0+256 -composite d1.png -geometry +256+256 -composite dest4.png
说明:convert -size 512x512 xc:none 创建一张空白图片,然后把小图片合成到其上面。合成的命令大致为:convert 背景图片 图片 定义坐标原点 图片的位置 -composite 目标图片,其中“图片 定义坐标原点 图片的位置 -composite”可以重复,从而把多张图片一次性合成到背景图片上。使用-gravity定义坐标原点,默认是左上角,可以用east,north,northwest等来重新定义原点,-geometry相对于原点的位置。