n个字形的边界框,给定单独的bbox和进展

时间:2012-07-17 16:14:30

标签: algorithm graphics fonts 2d

由于特定的原因,我正在实现自己的字体渲染,并且需要通过使用单个字形的边界框以及相应的前进来计算文本的边界框的算法。有关说明,请参阅this illustration

enter image description here

对于每个 N 字形,给出相对于原点的相对bbox(xmin,xmax,ymin,ymax)和advance(伪代码):

int xmin[N], xmax[N], ymin[N], ymax[N], adv[N];

如果没人咬人,我会自己给出答案。

1 个答案:

答案 0 :(得分:1)

对于一般情况,您将无法仅使用字形边界框准确测量字符串,并且由于提示,字距调整和连字而无法显着改变字形的大小及其间距,具体取决于它们字符串中的位置以及所选的字体大小。

通过迭代字形并添加提前宽度和xMin来计算字符串长度的天真方式只适用于特定大小的某些字体,如果可能的话,不应该使用。

获取字体指标的最简单方法是使用已建立的字体呈现引擎直接获取文本的长度(如果API公开它)或将文本呈现到表面并找到最小/最大像素X / Y方向。