天天看點

minigui顯示ttf字型鋸齒化原因和解決辦法

    在使用minigui1.3.3顯示ttf字型時,使用的是minigui中的freetype2接口,裡面有些代碼要修改,不然編譯不過。

    字型正常顯示後,又發現顯示出來的字鋸齒現象十分嚴重,但是在讀取圖元時使用的是抗鋸齒模式,在網上找過很多貼子,最後看到有人提過alpha混合。

    freetype抗鋸齒的原理,是使用了AA技術,簡單來講就是使字型輪廓模糊化,然後看起來就很光滑。

    一番調試後确定是顯示的時候出問題了,字的位圖讀出來的時候沒有問題。

    讀出來的字的位圖是8位256級灰階位圖(freetype1.3.1隻支援Mono位圖,也就是黑白位圖,感覺沒法抗鋸齒),但是在minigui顯示的時候,是判斷不為0就将像素設定為前景色,是以原來的模糊效果失去,字型重新鋸齒化。

    解決辦法是,以字的位圖做alpha處理,以前景色混合背景色,這樣字不會出現鋸齒了。