C语言 转换自由型轴承原点坐标



我试图使用FreeType为微控制器创建位图字体,但我坚持在坐标表示方式的基本差异上。我的微控制器期望字形位图相对于左上角的原点的X和Y偏移量,而FreeType相对于不可见的基线给我"轴承"。我很确定X是我想要的X偏移量,但是我怎么确定Y偏移量呢?我试着从上升高度减去方位y,但是有些偏移量是负的。这是不可接受的,因为它使在显示的左上角绘制文本变得不可能。

我通过预先渲染所有的符号并跟踪实际渲染像素的最大上升和下降来解决这个问题。然后我从两个值中计算所有字形的最大高度,并使用它来计算每个字形位图从其顶部轴承的y偏移量。通过一个额外的渲染步骤,我还可以重新缩放脸部以更接近我想要的像素高度。