Изменить код для добавления верхнего заголовка ImageMagick - PullRequest
0 голосов
/ 13 ноября 2018

Пожалуйста, помогите здесь. Я использую IM 6.9.10-11 Q16 x86_64

Следующие коррелятивные координаты связаны с номером поля на входном изображении. Первые 3 строки в команде convert создают текст заголовка «Влево - Вправо», который идет над img2.png и img3.png

coord1="98x35+234+16" 
coord2="178x59+29+65"
coord3="178x59+223+65"
coord4="178x59+417+65"
coord5="178x59+611+65"
coord6="239x147+35+179" 
coord7="239x147+416+179"
coord8="239x147+73+349"
coord9="239x147+401+353"    

convert \
\( -size 125x36 xc:"#00137F" -fill white -font Calibri-Bold -pointsize 32 -gravity center -annotate +0+0 "Left" \) \
\( -size 125x36 xc:"#00137F" -fill white -font Calibri-Bold -pointsize 32 -gravity center -annotate +0+0 "Right" \) \
 -background white +smush +2 -write mpr:leftright +delete +gravity \
 \
input.png +repage -write mpr:img -delete 0--1 -background none -bordercolor "#870000"  \
\( mpr:img -crop $coord2 \)  \
\( mpr:img -crop $coord3 \)  \
\( mpr:img -crop $coord4 \)  \
\( mpr:img -crop $coord5 \)  \
-border 4 \( -clone 0,1 -smush -4 \) \( -clone 2,3 -smush -4 \) -delete 0-3 -gravity center +smush -4 +gravity \
\( mpr:img -crop $coord1 -border 4 \) +swap -gravity center -smush +12 +gravity -write Img1.png \
 \
\( \( mpr:img -crop $coord6 +repage -border 4 \) \( mpr:img -crop $coord7 +repage -border 4 \) \
   +smush +6 mpr:leftright +swap -gravity center -smush +11 +gravity  -write Img2.png  \) -delete 0--1 \
\
\( \( mpr:img -crop $coord8 +repage -border 4 \) \( mpr:img -crop $coord9 +repage -border 4 \) \
   +smush +6 mpr:leftright +swap -gravity center -smush +11 +gravity  -write Img3.png  \) null:  

С этим input.png

input.png

enter link description here

Код производит эти 3 изображения.

Img1.png

enter link description here

Img2.png

enter link description here

Img3.png

enter link description here

Мне бы хотелось изменить текущий код, чтобы добавить текст верхнего заголовка к каждому из этих 3 изображений перед их созданием (перед -write) Чтобы, наконец, Img1, Img2 и Img3 были такими:

Желаемый Img1

enter link description here

Желаемый Img2

enter link description here

Желаемый Img3

enter link description here

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

\( -size 500x36 xc:"#757575" -fill white -font Calibri-Bold -pointsize 32 -gravity center -annotate +0+0 "Five boxes" \) \
\( -size 500x36 xc:"#757575" -fill white -font Calibri-Bold -pointsize 32 -gravity center -annotate +0+0 "Blue boxes" \) \
\( -size 500x36 xc:"#757575" -fill white -font Calibri-Bold -pointsize 32 -gravity center -annotate +0+0 "Green boxes" \) \

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 14 ноября 2018

В ImageMagick вы можете создавать изображения в любом месте в скобках и изменять их положение с помощью -swap ... (или + swap для последних двух).Таким образом, ваша команда будет иметь вид:

coord1="98x35+234+16" 
coord2="178x59+29+65"
coord3="178x59+223+65"
coord4="178x59+417+65"
coord5="178x59+611+65"
coord6="239x147+35+179" 
coord7="239x147+416+179"
coord8="239x147+73+349"
coord9="239x147+401+353"    

convert \
\( -size 125x36 xc:"#00137F" -fill white -font Calibri-Bold.ttf -pointsize 32 -gravity center -annotate +0+0 "Left" \) \
\( -size 125x36 xc:"#00137F" -fill white -font Calibri-Bold.ttf -pointsize 32 -gravity center -annotate +0+0 "Right" \) \
-background white +smush +2 -write mpr:leftright +delete +gravity \
\
input.png +repage -write mpr:img -delete 0--1 -background none -bordercolor "#870000"  \
\( mpr:img -crop $coord2 \)  \
\( mpr:img -crop $coord3 \)  \
\( mpr:img -crop $coord4 \)  \
\( mpr:img -crop $coord5 \)  \
-border 4 \( -clone 0,1 -smush -4 \) \( -clone 2,3 -smush -4 \) -delete 0-3 -gravity center +smush -4 +gravity \
\( mpr:img -crop $coord1 -border 4 \) +swap -gravity center -smush +12 +gravity \
\( -size 250x36 xc:gray -fill white -font Calibri-Bold.ttf -pointsize 32 -gravity center -annotate +0+0 "Five Boxes" \) \
+swap -background none -gravity center -smush +20 +gravity -write Img1.png \
\
\( \( mpr:img -crop $coord6 +repage -border 4 \) \( mpr:img -crop $coord7 +repage -border 4 \) \
+smush +6 mpr:leftright +swap -gravity center -smush +11 +gravity  \
\( -size 250x36 xc:gray -fill white -font Calibri-Bold.ttf -pointsize 32 -gravity center -annotate +0+0 "Blue Boxes" \) \
+swap -background none -gravity center -smush +20 +gravity -write Img2.png  \) -delete 0--1 \
\
\( \( mpr:img -crop $coord8 +repage -border 4 \) \( mpr:img -crop $coord9 +repage -border 4 \) \
+smush +6 mpr:leftright +swap -gravity center -smush +11 +gravity  \
\( -size 250x36 xc:gray -fill white -font Calibri-Bold.ttf -pointsize 32 -gravity center -annotate +0+0 "Green Boxes" \) \
+swap -background none -gravity center -smush +20 +gravity -write Img3.png  \) null:  


И результаты будут такими:

enter image description here

enter image description here

enter image description here

К сожалению, в IM 6 нет способа узнать, насколько широкими будут ваши смутные цветные изображения, чтобы сделать заголовоктой же ширины, если вы не рассчитаете это заранее.В IM 7 это можно сделать в командной строке.Так что здесь я сделал его такой же ширины, как два левых и правых замурованных изображения.Вы можете изменить ширину, изменив значение ширины в -size 250x36.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...