【发布时间】:2020-07-20 07:10:10
【问题描述】:
在用 freetype 画出字形后,笔前进如下:
pen.x += face->glyph->advance.x;
pen.y += face->glyph->advance.y;
我的问题是,如何设置第一个字符的初始笔位置,相对于绘图表面的左上边界?
{0,0} 不正确,因为它会将第一条线大部分绘制在绘图表面的顶部上方,并且太靠近左边界。
我怀疑是以下几种情况的组合:
struct FT_FaceRec {
...
FT_BBox bbox;
FT_UShort units_per_EM;
FT_Short ascender;
FT_Short descender;
FT_Short height;
FT_Short max_advance_width;
FT_Short max_advance_height;
...
}
但不是很清楚。
【问题讨论】:
-
您打算使用very tall font 吗?如果第一个字符突出到左边——比如说,斜体小写
f——你想把它移到右边让它完全可见吗?总是相同的字体和大小?这是用于交互式输入还是静态文本?在确定 y 偏移量时,您是否需要考虑重音?在首都?包括越南语(多种口音)?包括zalgo文本? (... lotsa 堆叠的口音..)
标签: fonts truetype freetype freetype2