如何重叠多个图像,使它们的中心直接位于彼此的顶部?
我使用
-layers merge
而不是-layers flatten
,因为展平会裁剪图像以适合第一个图像的尺寸,但合并会扩展“画布”,并且我希望能够看到每个输入的全部图像。
-layers merge
和-layers flatten
的默认行为是对齐左上角:
convert wizard: \( logo: -transparent white \) \( rose: -transparent white \) -background white -layers merge merged.png
您可以看到玫瑰位于左上角,但我希望它位于中间。我还希望
wizard:
图像居中对齐。
所需输出:
最简单的方法是使用 Imagemagick 多次使用 -gravity 和 -composite
convert wizard: \( logo: -transparent white \) -gravity center -composite \( rose: -transparent white \) -gravity center -composite merged.png
或者,您可以计算左上角,使中心对齐并使用 -set 页面。只需从向导图像中减去每个的中心即可。
convert xc: -format "%[fx:240-320]\n" info:
-80
convert xc: -format "%[fx:320-240]\n" info:
80
convert xc: -format "%[fx:240-35]\n" info:
205
convert xc: -format "%[fx:320-23]\n" info:
297
convert wizard: \( logo: -transparent white -set page -80+80 \) \( rose: -transparent white -set page +205+297 \) -background white -layers merge merged2.png