Imagemagick - move/offset 平铺蒙太奇中的图像?

Imagemagick - move/offset images within a tiled montage?

考虑这个例子(Ubuntu 18.04,ImageMagick 6.9.7-4 Q16 x86_64 20170114):

convert -size 300x100 xc:red red.png
convert -size 100x100 xc:blue blue.png
montage red.png blue.png -frame 5 -geometry '+0+0' -tile 1x redblue.png

这给出了下图:

我想做的是将蓝色方块移动到任意 x 位置 "within its tile";比如说将蓝色方块的左边缘与红色矩形宽度的 25% 或 50% 对齐 - 或者甚至将蓝色方块的右边缘与红色矩形的右边缘对齐。

我已经看到 -tile-offset 存在 (https://imagemagick.org/script/command-line-options.php#tile-offset),我已经用这个例子试过了,但它看起来没有任何作用。

如何在其图块内移动图像(ImageMagick 蒙太奇的一部分)?


编辑:看起来 -tile-offset 只能指定为显式图块图像(不像 -tile 1x 中那样,而是像 -tile red.png 中那样),并且:

Tile smaller image over a background with offsets? - ImageMagick

-tile-offset must come before the tiling. It represents a single global offset, not the spacing for the tiling.

这是一个例子:

convert -size 300x100 radial-gradient:\#400-\#FAA red.png
convert -size 500x500 xc: -tile-offset +100+40 +size -tile red.png  -border 5 -geometry +5+5  -draw "color 0,0 reset" out.png

那么out.png是这个(点击查看全图):

...所以澄清一下 - 我想知道是否可以在 montage tile 1x

中获得的图块内移动图像

在 ImageMagick 6 中,另一种方法是扩展透明背景,然后在扩展图像的下半部分中心合成蓝色图像。

convert -size 300x100 xc:red -background none -extent 300x200 -size 100x100 xc:blue -geometry +100+100 -composite result.png


如评论中所建议:

convert -background none red.png \( -size 25x xc:none blue.png +append \) -append result.png

或者有 2 个不同的偏移量:

convert -background none red.png            \
   \( -size 25x xc:none blue.png +append \) \
   \( -size 50x xc:none blue.png +append \) \
   -append result.png

不确定您的最终目标是什么,但您也可以这样做:

convert -gravity east -background none red.png blue.png red.png blue.png -append result.png

或者这样:

convert -gravity center -background none red.png blue.png red.png blue.png -append result.png