Как я могу нарисовать несколько наложенных прямоугольников на изображении, используя ImageMagick - PullRequest
0 голосов
/ 21 апреля 2020

Я использую следующий код, чтобы нарисовать оверлейную рамку над другим изображением

        convert                 \
         -background '#0002'    \
         -gravity Center        \
         -fill white            \
         -size ${page_width}x30     \
          caption:""      \
          "${img}"              \
         +swap                  \
         -geometry +0+100            \
         -composite             \
          "${img}"  

, однако я хочу нарисовать его на нескольких позициях, например, через каждые 100 пикселей сверху вниз. , Я могу использовать al oop для этой цели, но я хотел бы знать, есть ли лучшая команда или решение для этой проблемы?

1 Ответ

1 голос
/ 21 апреля 2020

Вы можете сделать это, наложив свой рисунок на изображение, используя Imagemagick.

  • Создайте изображение "# 0002", используя -size ... x c: "# 0002"
  • Аналогичным образом создайте полностью прозрачное изображение высоты вашего интервала
  • Добавьте два изображения по вертикали
  • Разделите их по размеру входного изображения
  • Композитный, что поверх входного изображения

Ввод:

enter image description here

# Line 1: read the input
# Line 2: create the tile (spacing set to 50 in transparent section)
# Line 3: tile it out over the size of the input by replacing it on the input
# Line 4: do the composite
# Line 5: save the output

convert lena.png \
\( -size 256x30 xc:"#0002" -size 256x50 xc:none -append -write mpr:tile +delete \) \
\( -clone 0 -tile mpr:tile -draw "color 0,0 reset" \) \
-compose over -composite \
result.png


Результат:

enter image description here

...