我正在尝试在图像上放置带有透明背景的标签,这样可行,但填充有问题。文本太靠近透明背景的顶部。我想为它添加一些填充,但我似乎无法让它工作。我知道我可能会用抽奖来代替背景,但标签的长度一直在变化。我想我可以根据角色长度来估计我需要的尺寸,但是在图像魔法中有更简单的方法吗?
我试图搜索一个可能会改变行高或其他东西的选项,但只是找到了单词,字符或行之间的间距。
有什么想法吗?
Convert input.jpg -fill white -undercolor 'rgba(0, 0, 0, .75)' -font Helvetica -pointsize 48 -gravity south -annotate +0+35 " Blah blah blah " output.jpg
答案 0 :(得分:2)
您可以使用label
创建标签,然后splice
在顶部添加一些额外的行,然后将其合并到您的图片上。它有点难看但不太复杂。
convert -background 'rgba(0, 0, 0, .75)' \
-fill white -font Helvetica -pointsize 48 \
label:" Blah blah blah " -splice 0x10 \
input.jpg \
+swap -gravity south \
-geometry +0+10 -composite result.jpg
或者你可以反过来做并保留元数据:
convert input.jpg \
\( -background 'rgba(0, 0, 0, .75)' -fill white \
-font Helvetica -pointsize 48 \
label:" Blah blah blah " -splice 0x10 \
\) -gravity south -geometry +0+10 -composite result.jpg
答案 1 :(得分:0)
这也可以是在透明文本图像的所有面上添加填充的解决方案
使用:
-gravity southeast -splice 20x20 -gravity northwest -splice 20x20
此解决方案对我有用
没有填充:
convert -background "rgba(0, 255 ,0, 0.7)" \
-font "Lobster-Regular.ttf" -pointsize "60" \
-fill "#FFFFFF" label:"PROMOTE ANYTHING" \
heading.png
使用填充:
convert -background "rgba(0, 255 ,0, 0.7)" \
-font "Lobster-Regular.ttf" -pointsize "60" \
-fill "#FFFFFF" label:"PROMOTE ANYTHING" \
-gravity southeast -splice 20x20 -gravity northwest -splice 20x20 \
heading.png