c++ - 提取字形字距调整信息 C++

标签 c++ qt fonts pango kerning

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

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

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

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

谢谢,

最佳答案

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

  1. kern 表,继承自 TrueType。此表提供字距对信息(即您应该水平偏移多少特定字符对)。微软提供specs for this table还提供一些 Windows API 函数,例如 GetKerningPair()GetFontData()这可以帮助您提取值(value)。

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

虽然我认为从 kern 表中获取字距调整值比 GPOS 表简单得多,但我没有找到太多关于这些的代码示例。

关于c++ - 提取字形字距调整信息 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253928/

相关文章:

c++ - C++03 后期绑定(bind)接口(interface)的设计模式

c++ - 如何捕获 JNI/Java 异常?

c++ - Tensorflow 和 Bazel C++

html - 我如何在 Dreamweaver 中应用全局字体系列?

html - Microsoft Edge 和 Google Fonts 显示粗体字符

pdf - 在 Ubuntu 中为 Ghostscript 添加 Times New Roman

c++ - 是否可以对 float 逼近的不同形式进行分类

c++ - 如果我睡 10 毫秒。我需要增加多少才能获得第二个?

c++ - 了解 Qt 平台变量

qt - (PyQt) QTreeView - 想要展开/折叠所有子项和孙项