#imagemagick #imagemagick-convert
#imagemagick #imagemagick-конвертировать
Вопрос:
Нам нужно поместить информационные панели в тысячи файлов изображений. Примерно неделю или около того я пытаюсь изучить imagemagick, но я просто не мог разобраться в таком количестве элементов, поэтому я хотел попросить помощи здесь.
Я понимаю идею добавления элементов ‘- / ‘ и переключения между ними, но когда дело доходит до ячеек матрицы 3×3 и микширования текста и изображений, я просто не могу этого сделать. В качестве примера, я могу добавить 3 строки и столбец рядом с ними, но я не могу перейти к следующему шагу «добавить еще 2 строки вместе, а затем снова поместить их в виде блока столбцов», потому что, когда я пытаюсь, все эти добавления становятся правыми или нижними как целое изображение.. Что ж, вы поймете это, когда увидите мое краткое изображение ниже..
magick.exe -size 150x100 -gravity center caption:"txt2" caption:"txt3" caption:"txt4"
-append -size 94x294 xc:white -border 3 -swap 0,1
append outoutout.jpg
К вашему сведению, высота / ширина строк / столбцов есть только для примера, не важно.. И здесь появляются навыки MSPaint:
Ответ №1:
Вы должны создавать каждый раздел отдельно, используя обработку скобок. Затем, если вы хотите, добавьте их соответствующим образом. Кроме того, вы можете создать фоновое изображение и создать композицию … -составьте каждое изображение в нужное место.
Вот пример в ImageMagick, использующий второй метод.
Синтаксис Unix:
magick -size 400x400 xc:white
( barn.jpg -crop 400x200 0 0 repage )
-geometry 0 0 -compose over -composite
( -size 100x200 xc:white -shave 5x5 -bordercolor black -border 5 )
-gravity northwest -geometry 0 200 -compose over -composite
( -size 100x200 -background white -gravity center -fill black
-font Candice label:"Text1nnText2nnText3" )
-gravity northwest -geometry 100 200 -compose over -composite
( -size 100x200 -background skyblue -gravity center -fill red
-font Arial label:"First_linennnSecond_line" )
-gravity northwest -geometry 300 200 -compose over -composite
result.png
Смотрите, например:
Комментарии:
1. Это отличное решение, спасибо. С помощью ‘-geometry’ я буду управлять каждым элементом, чтобы он решал все. Всего 1 небольшой быстрый вопрос, есть ли какое-либо предложение if в imagemagick? Например, «если основное изображение (barn.jpg в вашем примере) ширина <1000 пикселей, затем измените размер на barn.jpg ширина или просто ничего не делайте.. Еще выполните эту команду и т.д.. (Это не так важно, я просто хочу посмотреть, насколько более мощным может быть imagemagick ..)
2. В командной строке нет конкретной команды if. Однако с IM 7 вы можете выполнять вычисления условий. Также есть флаги для изменения размера и изображения, если оно больше (или меньше), чем некоторый указанный размер. Смотрите imagemagick.org/script/command-line-processing.php#geometry