【问题标题】:same baseline for different font size不同字体大小的相同基线
【发布时间】:2017-04-14 11:37:15
【问题描述】:

imagemagick 转换:

如何在同一基线上书写不同字体大小的文本?

我想要这样的东西:

【问题讨论】:

    标签: text imagemagick baseline


    【解决方案1】:

    您可以像这样获得字体指标:

    convert -debug annotate -pointsize 12 label:"Apple" info:
    

    输出

    如果您想混合使用 24pt、36pt 和 48pt 字体大小,则需要运行 3 次 - 每种字体大小运行一次。

    如果更改点大小,您将看到heightdescent 相应更改。您需要用一些像素填充较小字体的底部边缘,以使其与较大字体对齐。该数字与 heightdescent 字段有关 - 我认为它只是 height-abs(descent) 但我没有进行广泛的测试。

    当你有填充时,你可以像这样排列它们:

    convert -gravity south \
         -pointsize 24 label:"Apple" -splice x5    \
      \( -pointsize 36 label:"Apple" -splice x2 \) \
         -pointsize 48 label:"Apple" +append result.jpg
    

    所以,我在 24pt 文本底部拼接了 5 个像素,在 24pt 文本底部拼接了 2 个像素,以将它们与 36pt 文本对齐 - 因为我设置了-gravity south,所以底部对齐。

    【讨论】:

    • 有什么办法可以用 javascript 或一般编程语言的前端来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    相关资源
    最近更新 更多