为什么 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->horiAdvanceface->glyph->linearHoriAdvance,如下所示: horiAdvance is 667linearHoriAdvance is 2914394.

因为我使用 FT_LOAD_NO_SCALE 加载字形,所以值是字体单位。所以 linearHoriAdvance 应该等于 horiAdvance * 65536(因为 linearHoriAdvance 是 16.16 格式)。

然而它们实际上并不相等(2914394 / 65536 约为 44.47),为什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...