图像magick填充字体

时间:2015-08-20 02:29:06

标签: imagemagick

我正在尝试在图像上放置带有透明背景的标签,这样可行,但填充有问题。文本太靠近透明背景的顶部。我想为它添加一些填充,但我似乎无法让它工作。我知道我可能会用抽奖来代替背景,但标签的长度一直在变化。我想我可以根据角色长度来估计我需要的尺寸,但是在图像魔法中有更简单的方法吗?

我试图搜索一个可能会改变行高或其他东西的选项,但只是找到了单词,字符或行之间的间距。

有什么想法吗?

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

2 个答案:

答案 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

enter image description here

或者你可以反过来做并保留元数据:

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
 

<img src="https://www.dropbox.com/s/njglnz94qz12ojy/sub_heading.png"></image>

使用填充:


 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

enter image description here