在问了我之前的问题之后about Uniscribe glyph kerning ,并且还没有收到答案,再加上进一步阅读谷歌等,似乎 Uniscribe 可能不支持从字体中提取字形字距调整信息。
因此我有一个简单的后续问题 - 是否有任何好的示例(最好是一些 C++ 代码)从字体中提取指定字符串的字形字距调整信息?
在很多地方都提到过 Pango、QT 或 ICU 都能够做到这一点,但实际的文档有点薄,我很难知道从哪里开始。
非常感谢任何指向我正确方向的帮助。我已经有了以所需方式呈现字形的代码,我只是在扩展字距调整信息之后,所以我可以更好地定位字形。
谢谢,
最佳答案
OpenType 字体有两种不同的方式来指定字距调整信息,这两种方式都是可选的:
kern 表,继承自 TrueType。此表提供字距对信息(即您应该水平偏移多少特定字符对)。微软提供specs for this table还提供一些 Windows API 函数,例如
GetKerningPair()
和GetFontData()
这可以帮助您提取值(value)。GPOS 表,一个 OpenType 表,显然可以处理所有可能的字形定位形式。微软也有一些 specs对于这张表,但老实说,我什至不知道你从哪里开始......你可能想看看 ICU 如何处理这类事情。
虽然我认为从 kern 表中获取字距调整值比 GPOS 表简单得多,但我没有找到太多关于这些的代码示例。
关于c++ - 提取字形字距调整信息 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253928/