【发布时间】:2020-03-13 23:59:19
【问题描述】:
我已设法使用libraqm 获得正确的字形(字形整形),现在我需要进行字形连接以使字形正确连接。
我已经设法获得了正确的水平前进,使用:
advance = (glyphs[i].x_advance / glyphs[i].ftface->units_per_EM) * fontsize;
但是,偏移量似乎不正确,因为所有字形 x 和 y 偏移量都被 libraqm 设置为 0。
最初,我使用以下方法设置字形的位置:
const float left = (float)(origin_x + glyphs[i].x_offset);
const float top = (float)(origin_y + font->leading + (font->ascent - glyphs[i].y_offset));
但这会导致所有字形都与文本行的顶部对齐,如下所示: (随机文字示例)
所以我修改了代码,将字形与文本行的底部对齐,如下所示:
const float left = (float)(origin_x + glyphs[i].x_offset);
const float top = (float)(origin_y + font->leading + (font->ascent - glyphs[i].y_offset)) - glyphs[i].ftface->glyph->bitmap.rows;
虽然看起来更好,但还是不太对劲……
有谁知道我应该如何使用 libraqm 为每个字形获取正确的偏移量?
【问题讨论】: