True Type字体格式:笔位置,提前宽度和字距

我正在做一些使用字体的工作,现在使用TTF(True Type Font)文件格式。 我知道该字形有一个笔尖位置和一个advance width参数,用于指定在绘制下一个字形之前我们应该向右移动的距离(假设从左到右的字体在这里和水平方向)。 我的问题:

  • 我在哪里可以找到FFT文件中高级宽度的数据。 这是在hhea表吗? 那是advanceWidthMax吗?
  • 我无法找到文件中定义的笔位置在哪里? 您能否指出我将存放这张桌子的桌子? (或者我应该从字形xmin,ymin,基线和左轴承数据计算出来,然后使用字距进行其他小调整?)

  • 是字体的高级宽度全局吗?

  • 每个字形都有一个笔位置?

  • 我理解为了调整字形之间的位置,您应该使用字距数据,该字距数据指定字形与advanced width之间的偏移量。 那是对的吗?

  • 编辑

    我发现我的问题部分回答:

  • hhea包含整个字体的信息
  • 尽管这些信息并不适用。 您需要从htmx表中读取包含字体中每个字形的数据(左侧方向和前进宽度)的数据。
  • 我仍然对笔的位置感兴趣)以及如何正确使用字距数据。


    希望这可以帮助未来的人。我发现:

  • hhea包含整个字体的信息
  • 尽管这些信息并不适用。 您需要从html表格中读取包含字体中每个字形的数据(左侧方向和前进宽度)的数据。 通常这个表格包含的字体包含字形的条目数量。 每个条目指定字形左侧的轴承和前进宽度。
  • 我没有找到关于笔位置的任何信息,但我假设字形的xmin值是相对于EM平方的原点。 所以要找到笔的位置(x),你需要做一些事情:

    pos_pos_x = glyph->leftSideBearing - glyph->min.x
    

    一旦字形被绘制出来,你需要通过glyph->advanceWidth移动并重复该过程来绘制字形。 我不知道这100%是否准确,但至少这是我迄今为止已经完成的逆向工程。

    链接地址: http://www.djcxy.com/p/87313.html

    上一篇: True Type Font format: Pen Position, Advance Width and Kerning

    下一篇: Can I embed a custom font in an Android application?