Text Truetype字体间距?

Text Truetype字体间距?,text,fonts,directx,rendering,truetype,Text,Fonts,Directx,Rendering,Truetype,我正在对true type字体进行矢量化,以将其渲染为Direct3D基本体。到目前为止,我已经成功地使用GetGlyphOutline提取了glyph,并将它们渲染为线列表原语。不管怎样,关于间距 如何找出字符之间的间距,或如何/在何处确定间距? 很明显,空格随非单空格字体的不同而不同 是否有GDI+或其他windows函数调用来确定间距?我不知道direct3d的任何内容,但如果您刚刚完成度量,它们将存储在字体紧排表中;将告诉您字符对集的正确位置。您指的是字形的前进宽度(存储在字体的hmtx

我正在对true type字体进行矢量化,以将其渲染为Direct3D基本体。到目前为止,我已经成功地使用GetGlyphOutline提取了glyph,并将它们渲染为线列表原语。不管怎样,关于间距

如何找出字符之间的间距,或如何/在何处确定间距? 很明显,空格随非单空格字体的不同而不同


是否有GDI+或其他windows函数调用来确定间距?

我不知道direct3d的任何内容,但如果您刚刚完成度量,它们将存储在字体紧排表中;将告诉您字符对集的正确位置。

您指的是字形的前进宽度(存储在字体的hmtx表中,或垂直文本的vmtx)。通过GDI(听起来您使用的是GDI而不是DirectWrite),您可以使用:

  • GetCharabcWidths如果您已经有一个glyph ID数组。这种方法可以支持Unicode中的任何字符,包括扩展的CJK和更新的附加字符,如埃及继承文字,而不仅仅是较低的基本多语言平面
  • GetCharWidth32用于字符宽度-仅限于基本平面,但为简单选项
  • 使用GGO_度量调用GetGlyphOutline并使用gmCellIncX。这返回的字段比您可能感兴趣的字段要多

  • 紧排是对标称提前量的额外可选调整,例如在“阿凡达”一词中,为了美观起见,“A”和“V”将更接近。我在这里问了一个类似的问题: