我想使用 imagemagick 来创建马赛克。
我有一个图像列表以及它们各自的偏移量和比例,例如:
- a.jpg,平移至 0,0 并缩放至 100%
- b.jpg,转换为 200,50 并缩放至 25%
- c.jpg,转换为 100,320 并缩放至 33%
其想法是按照指示缩放/翻译图像并将它们合成在一起。
我尝试过诸如这样的命令convert a.jpg \(b.jpg -resize 25%\) -geometry +200+50 \(c.jpg -resize 33% \) -geometry +100+320 -composite out.jpg
,但输出被裁剪为第一幅图像的大小。由于我事先不知道图像的尺寸,所以我不知道图像的最终大小。
使用 imagemagick 实现这一目标的好方法是什么?
答案1
使用该-mosaic
选项允许在原始图像的边界之外进行合成。
因此,创建一个蓝色和一个红色的矩形:
magick -size 640x480 xc:blue blue.png
magick -size 100x100 xc:red red.png
现在将红色矩形合成到蓝色矩形上,但是外部其原始范围,并将背景设为黄色,以显示我们强制图像魔术师扩展图像:
magick blue.png -background yellow -page +800+30 red.png -mosaic result.png
另外,如果您有数千张图像需要合成,并且全部列在 CSV 中,那么您最好使用 CSV 来制作“魔法脚本”其中包含所有命令,因此您只需一次调用即可完成所有操作,请参阅这里和这里。