Imagemagick - перемещать / смещать изображения внутри плиточного монтажа?

Рассмотрим этот пример (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

Это дает следующее изображение:

То, что я хотел бы сделать, это переместить синий квадрат в произвольную позицию х "внутри своей плитки"; скажем, выровняйте левый край синего квадрата там, где будет 25% ширины красного прямоугольника, или на 50% - или даже выровняйте правый край синего квадрата с правым краем красного прямоугольника.

Я видел это-tile-offsetсуществует ( https://imagemagick.org/script/command-line-options.php), и я попробовал это на этом примере, но похоже, что он ничего не делает.

Как я могу переместить изображение, часть монтажа ImageMagick, в пределах его плитки?


РЕДАКТИРОВАТЬ: похоже-tile-offsetможно указывать только для явных изображений тайлов (не так, как в -tile 1x но как в -tile red.png), а также:

Меньшее изображение на фоне со смещением? - ImageMagick

-tile-offset должен быть перед плиткой. Он представляет собой единое глобальное смещение, а не интервал для листов.

Вот пример:

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 это (нажмите для полного изображения):

... чтобы уточнить - я хотел бы знать, возможно ли перемещать изображение в пределах плитки, полученной в montagetile 1x

2 ответа

Решение

Как предлагается в комментарии:

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

В ImageMagick 6 другой способ - расширить прозрачный фон, а затем скомпоновать синее изображение в центре нижней половины расширенного изображения.

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


https://s tackru.com/images/013759cfe9481f7b5035cd9e225ab84228647e9a.png

Другие вопросы по тегам