不同字体大小的相同基线

same baseline for different font size

imagemagick 转换:

如何在同一条基线上书写不同字号的文字?

我想要这样的东西:

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

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

输出

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

如果您更改磅值,您会看到 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.