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

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

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

redblue.png

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

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

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


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

Плитка меньшего изображения на фоне со смещениями? - ImageMagick

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

Вот пример:

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

out.png

... поясню - я хотел бы знать, возможно ли перемещать изображение внутри плитки, полученное в montage tile 1x

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Как указано в комментарии:

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

enter image description here

или с двумя различными смещениями:

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

enter image description here

Не уверен, какова ваша конечная цель, но вы также можете сделать это:

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

enter image description here

Или это:

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

enter image description here

0 голосов
/ 18 января 2019

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

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


enter image description here

...