在问了我之前的问题之后 关于 Uniscribe 字形字距调整, ,并且尚未收到答案,再加上谷歌等的进一步阅读,似乎 Uniscribe 可能不支持从字体中提取字形字距调整信息。

因此,我有一个简单的后续问题 - 是否有任何从字体中提取指定字符串的字形字距信息的好示例(最好使用一些 C++ 代码)?

在很多地方都提到 Pango、QT 或 ICU 都能够做到这一点,但相关文档有点薄弱,我很难知道从哪里开始。

非常感谢任何为我指明正确方向的帮助。我已经有了代码来以所需的方式呈现字形,我只是在扩展字距调整信息之后,所以我可以将字形定位得更好一些。

谢谢,

有帮助吗?

解决方案

OpenType 字体有两种不同的方式来指定字距调整信息,这两种方式都是可选的:

  1. kern 表,继承自 TrueType。该表提供字距调整对信息(即您应该水平偏移特定字符对多少)。微软提供 该表的规格 并且还提供了一些Windows API函数,例如 GetKerningPair()GetFontData() 这可以帮助您提取价值。

  2. GPOS 表是一个 OpenType 表,显然可以处理每种可能的字形定位形式。微软也有一些 眼镜 对于这张桌子,但说实话,我什至不知道你从哪里开始......您可能想看看 ICU 如何处理此类事情。

尽管我认为从 kern 表获取字距调整值比 GPOS 表简单得多,但我还没有找到太多相关的代码示例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top