QT中QPF字庫(kù)的制作與旋轉(zhuǎn)字體的實(shí)現(xiàn)
一、前言
Qt可以支持以下四種形態(tài)的字體格式:TrueType (TTF),Postscript Type(PFA/PFB),Bitmap Distribution Format fonts(BDF),Qt Prerendered Font(QPF)。
如果直接使用TTF或PFA/PFB。即讓應(yīng)用程序在顯示的時(shí)候再計(jì)算點(diǎn)陣,最終的效果并不理想,會(huì)發(fā)現(xiàn)有些字大,有些字小,而且需要占用非常多的FLASH和內(nèi)存,速度也有點(diǎn)慢,如果直接使用BDF,速度非常慢,而且需要占用比較多的FLASH和內(nèi)存;使用QPF,速度和占用其它資源是最小的,因此我們的嵌入式產(chǎn)品中的QT軟件都是采用QPF格式的。
另一方面,嵌入式應(yīng)用中,QT界面在LCD中可能是采用旋轉(zhuǎn)的形式顯示,如7寸屏,而QT中旋轉(zhuǎn)顯示時(shí),需要旋轉(zhuǎn)字體庫(kù)的支持,否則將無(wú)法正常顯示文字。所以針對(duì)旋轉(zhuǎn)的應(yīng)用需要利用makeqpf制作旋轉(zhuǎn)的字體庫(kù)。
二、字庫(kù)制作
1)環(huán)境準(zhǔn)備
需要安裝好QT2及以上版本
編譯好兩個(gè)工具:qvfb,makeqpf
這兩個(gè)工具都在$QTDIR/tools下, 編譯即可
2)準(zhǔn)備ttf字庫(kù)文件
可以在自己的windows系統(tǒng)下發(fā)現(xiàn)ttf后綴的文件
此處作者采用網(wǎng)上下載的wqy-zenhei.ttf字庫(kù)文件
將所要的文件拷貝到你的linux系統(tǒng)的$(QTDIR)/lib/fonts目錄下
3)修改fontdir文件
cd $(QTDIR)/lib/fonts
打開(kāi)fontdir,加入如下信息:
wenquanyi wqy-zenhei.ttf FT n 75 160 u
wenquanyi wqy-zenhei.ttf FT n 50 160 u
wenquanyi wqy-zenhei.ttf FT n 50 180 u
wenquanyi wqy-zenhei.ttf FT n 75 180 u
這些信息的含義如下:
name1: 任意名
wqy-zenhei.ttf 文件名
FT: 表示是ttf文件
n : y表示是斜體,n表示正常
50: 表示是正常,75表示是粗體
160:表示是16點(diǎn)大小的字體,可根據(jù)需要修改
u:表示是unicode的
4)字庫(kù)生成
首先,執(zhí)行qvfb,然后執(zhí)行makeqpf.你會(huì)在 qvfb的顯示窗內(nèi)看到fontdir中每一行的信息。
在makeqpf界面中,點(diǎn)擊要轉(zhuǎn)換的字庫(kù),生成的新的.qpf文件就會(huì)存放到$(QTDIR)/lib/fonts/下了
5)旋轉(zhuǎn)字體庫(kù)的制作
使用帶參數(shù)的方式執(zhí)行makeqpf,如
./makeqpf -display Transformed:Rot90
以上指令用于制作翻轉(zhuǎn)90度的字庫(kù)文件,制作其它的字庫(kù)文件只需將270改為90,180,0等
注:在$(QTDIR)/lib/fonts/ 目錄下的qpf字體文件中,文件名中帶有t5,t10,t15等后綴的為旋轉(zhuǎn)字體庫(kù),t5為旋轉(zhuǎn)90度,t10為旋轉(zhuǎn)180度,t15為旋轉(zhuǎn)270度。如wenquanyi_160_50_t5.qpf