freetype 文本渲染位置的确定

一个face表示一直字体,一个字体文件中可能包含多个face,即包含多种字体

一个face中包含glyph集合,可以根据字符编码(如Unicode)来检索glyph

一个glyph包含(或者可以生成)一直字符图片image和许多用于渲染文本的参数

Glyph Metrics

如上图,glyph包含的字符图片为(xMin,yMin)到(xMax,yMax)的区域,包含的参数(Metrics)为bearingX,advance …

按理来说,我们只有得到一张字符图片就行了
比如从 origin(100,0)开始水平渲染文本,则只要将image的左上角与origin对齐进行贴图就行,完了将origin的x坐标加上image宽度和文字间隔,再进行下一个字符的渲染。
如果是汉字的话,貌似这样做也没问题,我们是方块字,每张字符图片的宽高差不多,按这种方法渲染出来的文本也比较整齐
然而英文不行,所以他们发明了各种各样的参数来确定字符图片的渲染位置

比如我们仍然从origin(100,0)处开始水平渲染文本,则要将image的左上角与

(originX + bearingX ,originY - bearingY)

对齐进行渲染,然后再将origin右移advance进行下一个字符渲染

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值