True Type字体格式:笔位置,提前宽度和字距
我正在做一些使用字体的工作,现在使用TTF(True Type Font)文件格式。 我知道该字形有一个笔尖位置和一个advance width
参数,用于指定在绘制下一个字形之前我们应该向右移动的距离(假设从左到右的字体在这里和水平方向)。 我的问题:
hhea
表吗? 那是advanceWidthMax
吗? 我无法找到文件中定义的笔位置在哪里? 您能否指出我将存放这张桌子的桌子? (或者我应该从字形xmin,ymin,基线和左轴承数据计算出来,然后使用字距进行其他小调整?)
是字体的高级宽度全局吗?
每个字形都有一个笔位置?
我理解为了调整字形之间的位置,您应该使用字距数据,该字距数据指定字形与advanced width
之间的偏移量。 那是对的吗?
编辑
我发现我的问题部分回答:
hhea
包含整个字体的信息 htmx
表中读取包含字体中每个字形的数据(左侧方向和前进宽度)的数据。 我仍然对笔的位置感兴趣)以及如何正确使用字距数据。
希望这可以帮助未来的人。我发现:
hhea
包含整个字体的信息 html
表格中读取包含字体中每个字形的数据(左侧方向和前进宽度)的数据。 通常这个表格包含的字体包含字形的条目数量。 每个条目指定字形左侧的轴承和前进宽度。 我没有找到关于笔位置的任何信息,但我假设字形的xmin值是相对于EM平方的原点。 所以要找到笔的位置(x),你需要做一些事情:
pos_pos_x = glyph->leftSideBearing - glyph->min.x
一旦字形被绘制出来,你需要通过glyph->advanceWidth
移动并重复该过程来绘制字形。 我不知道这100%是否准确,但至少这是我迄今为止已经完成的逆向工程。
上一篇: True Type Font format: Pen Position, Advance Width and Kerning