【发布时间】:2012-04-14 21:59:38
【问题描述】:
鉴于 Windows API 函数 GetGlyphIndices() 可以将 2 字节的 UNICODE 字符代码转换为字形索引,我打算硬编码这些字形索引,而不是 UNICODE 点。这可能吗?
我知道 MS 稍后可能会更改此函数为一个特定 UNICODE 点返回的值,但我希望在这种情况下,当前字形索引将保留在字形集中。
换句话说,我的理解是,如果 MS 决定将新的字形索引与 UNICODE 点相关联,它将扩大字形集以保留旧字形。
有人可以确认吗?
【问题讨论】:
-
这种期望让程序员忙于维护他们的代码。像 Raymond 这样的人正忙于与 appcompat 作战。一种明显的故障模式是字体映射器生成替代字体,因为您希望使用的字体在机器上不可用。
-
@HansPassant 任何使用 OpenType 字体的程序都必须访问 OpenType 字体文件中的一些表,例如 GSUB、GPOS、cmap 等……这不仅仅是调用 @987654322 的问题@ 或
CreateFontIndirect()。因此,像这样的代码无法捕获源自替代字体的错误的可能性几乎为零。 -
您可能希望在您的问题中更明显地表明您正在谈论 OpenType。虽然 Microsoft 对 appcompat 做出了相当坚定的承诺,但其他 OpenType 供应商不一定如此。
-
打电话给
GetGlyphIndices有问题吗? -
@DavidHeffernan 一点也不。我的问题与 OpenType 字体的字形集中字形的持久性有关。我的信念是它是持久的,尽管在 MSDN 中显然没有说支持或反对这个假设。
标签: windows winapi unicode opentype