Imagemagick:在带有长上升和下降的边界框中绘制文本

时间:2014-04-21 22:02:36

标签: image-processing imagemagick imagemagick-convert

我有一个奇怪的问题,在解析了ImageMagick的大量文档数小时后,我找不到答案。

我有一个程序可以在较大的图像中创建文本框。我当前的解决方案使用label:和caption:创建适当大小的临时图像,然后将此图像合成为更大的图像。到目前为止,这对我有用。

convert \
    -size 321x93 \
    -font Carolyna-Pro-Black-Regular \
    -pointsize 43 \
    -fill #808080 \
    -gravity center \
    label:"Carolyna Pro Black\nis an obnoxious font." \
    /tmp/generator20140421-7999-157xadf.png

然而,最近我添加了一些新字体,这些字体很难处理,因为它们有相当大的上升和下降(文本上下的循环,卷曲位。)对于这些字体,这些ascenders和下降者应该溢出他们的边界框。我尝试了一些事情,但都没有产生预期效果:

  1. 使边界框变大:看起来这样可行,但当-gravity设置为North时,文本会一直移动到顶部并剪切顶部。
  2. -draw命令的各种形式:这些不允许我使用-gravity在边界框内对齐我的文本,而且似乎不能使用多行文本。< / LI>
  3. 未指定-size参数并稍后裁剪图像。这可能是唯一的选择,但需要大量的手动计算才能使文本正确对齐文本,并为流程添加额外的步骤。
  4. 基本上,我的问题是我需要标签:提供的文字对齐功能,但我不希望我的文字被不必要地切断。

    有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

解决方案就像在文本前后添加换行符一样简单,并将文本的高度添加到边界框的顶部和底部。