gpt4 book ai didi

c - 在 FreeType 2 中获取文本边界框的正确方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:12:08 24 4
gpt4 key购买 nike

我想知道使用 FreeType 2 获取文本边界框的最佳方法是什么?

为了获得行距边界框的宽度,我遍历了文本的所有字符并得到它的提前和学习:

FT_Face face = ...;
text_bbox_width = 0;
while (*p_text)
{
...
FT_Get_Kerning(...);
text_bbox_width += (face->glyph->advance.x + kerning.x) >> 6;
}

如何获取行距边界框高度?是否需要迭代或者使用字体数据获取?即:

text_bbox_height = (face->ascender - face->descender) >> 6

最佳答案

好消息:您不需要遍历每个字符串中的字符。可以使用face->size->metrics->height,如3所述。 http://www.freetype.org/freetype2/docs/tutorial/step2.html 的全局字形指标 .请注意有关使用 ascenderdescender 的警告。

不要将此高度误认为是实际 像素边界框。个别字形可能会超出此框。您可以使用此行高在同一文本 block 中的多行上获得均匀的间距。要获得“更大”或“更小”的间距,您可以将该值乘以一个常数,例如“双倍行距”乘以 1.5 或 2.0。

我猜测 Freetype 计算的 height 值是某种字体的“正常”或“最佳”行间距。

关于c - 在 FreeType 2 中获取文本边界框的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com