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 это (нажмите для полного изображения):
... чтобы уточнить - я хотел бы знать, возможно ли перемещать изображение в пределах плитки, полученной в montage
tile 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