天天看点

minigui显示ttf字体锯齿化原因和解决办法

    在使用minigui1.3.3显示ttf字体时,使用的是minigui中的freetype2接口,里面有些代码要修改,不然编译不过。

    字体正常显示后,又发现显示出来的字锯齿现象十分严重,但是在读取图元时使用的是抗锯齿模式,在网上找过很多贴子,最后看到有人提过alpha混合。

    freetype抗锯齿的原理,是使用了AA技术,简单来讲就是使字体轮廓模糊化,然后看起来就很光滑。

    一番调试后确定是显示的时候出问题了,字的位图读出来的时候没有问题。

    读出来的字的位图是8位256级灰度位图(freetype1.3.1只支持Mono位图,也就是黑白位图,感觉没法抗锯齿),但是在minigui显示的时候,是判断不为0就将像素设置为前景色,所以原来的模糊效果失去,字体重新锯齿化。

    解决办法是,以字的位图做alpha处理,以前景色混合背景色,这样字不会出现锯齿了。