为什么Freetype将字符渲染得太近了?

时间:2015-09-06 22:25:28

标签: freetype2

我正在尝试使用Freetype呈现文本,以便在Raspberry Pi上运行的SDL / framebuffer应用程序中使用。这就是我现在所看到的:

enter image description here

请参阅2015年的“0”和“1”?他们太靠近了。看起来不错。

我的代码将文本绘制到图像缓冲区中:

moderate

字距调整似乎与我提供的任何模式没有任何区别。 (kerning.x始终为0)

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

问题在于我没有考虑字形结构中的bitmap_top和bitmap_left调整。

在我计算Px和Py位置后,我添加了这段代码:

if (Fnt->glyph->format == FT_GLYPH_FORMAT_BITMAP)
{
    Px += Fnt->glyph->bitmap_left;
    Py = (AscentF >> FShift) - Fnt->glyph->bitmap_top;
}

现在'1'已正确移动到位。这就是现在的样子:

Fixed freetype render