图像魔术填充字体

Image magick padding font

我正在尝试在图像上放置一个具有透明背景的标签,这可行,但存在填充问题。文本太靠近透明背景的顶部。我想给它添加一些填充,但我似乎无法让它工作。我知道我可以用绘制背景来代替,但标签的长度一直在变化。我想我可以根据字符长度估计我需要的大小,但是图像魔术中有更简单的方法吗?

我试图搜索可以更改行高或其他内容的选项,但只找到了单词、字符或行之间的间距。

有什么想法吗?

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

您可以使用 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

这也可以是在透明文本图像的所有边上添加填充的解决方案

使用:

 
 -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