Text 修改代码以添加顶部标题ImageMagick
请帮帮忙。我正在使用IM 6.9.10-11 Q16 x86_64 以下坐标与输入图像中的框编号相关。convert命令的前3行用于创建 标题文本“左-右”,位于img2.png和img3.png上方Text 修改代码以添加顶部标题ImageMagick,text,header,imagemagick-convert,Text,Header,Imagemagick Convert,请帮帮忙。我正在使用IM 6.9.10-11 Q16 x86_64 以下坐标与输入图像中的框编号相关。convert命令的前3行用于创建 标题文本“左-右”,位于img2.png和img3.png上方 coord1="98x35+234+16" coord2="178x59+29+65" coord3="178x59+223+65" coord4="178x59+417+65" coord5="178x5
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
代码生成这3个图像
Img1.png
Img2.png
Img3.png
我想要的是修改当前代码,在创建这3个图像之前(写之前),为它们中的每一个添加一个顶部标题文本
为了使Img1、Img2和Img3最终如下所示:
所需Img1
所需Img2
所需Img3
我想我需要首先在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" \) \
感谢您的帮助。在ImageMagick中,您可以在括号中的任何位置创建图像,并使用-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:
结果是:
不幸的是,在IM6中,除非你提前计算,否则无法知道你的彩色图像会有多宽,从而使标题具有相同的宽度。在IM7中,它可以在命令行中在线完成。所以在这里,我把它的宽度和两张左右模糊的图片一样。您可以通过更改-size 250x36中的宽度值来更改宽度。太好了。再次感谢你。我看到您没有使用“mpr”来创建顶部标题,那么创建左右标题也可以用同样的方法吗?我是说不用mpr?另外,什么是
-delete 0--1
以及为什么有时使用+或-gravity?需要mpr:以避免重复读取输入图像-delete 0--1表示删除命令序列中的所有前一个图像0是第一个图像,-1是最后一个图像。所以0--1表示从第一个到最后一个-设置要使用的重力时需要重力+重力用于将重力重置为其默认值。我明白了。非常感谢您的帮助、解释和信息共享。