如何解决为什么 linearHoriAdvance 不等于 face->glyph->metrics->horiAdvance * 65536?
在 windows 10 上使用 freetype2 加载字符“C”,如下所示:
FT_Set_Char_Size(face,(int) (16*64),300,300);
error = FT_Load_Glyph(face,glyph_index,FT_LOAD_NO_SCALE);
gm = face->glyph->metrics;
我检查了 gm->horiAdvance
和 face->glyph->linearHoriAdvance
,如下所示:
horiAdvance is 667
,
linearHoriAdvance is 2914394.
因为我使用 FT_LOAD_NO_SCALE
加载字形,所以值是字体单位。所以 linearHoriAdvance
应该等于 horiAdvance * 65536
(因为 linearHoriAdvance
是 16.16 格式)。
然而它们实际上并不相等(2914394 / 65536 约为 44.47),为什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。