freetype是乙個完全開源的、可擴充套件、可定製且可移植的字型引擎,它提供truetype字型驅動的實現統一的介面來訪問多種字型格式檔案,
包括點陣字、truetype、opentype、type1、
cid、cff、windows fon/fnt、x11 pcf等。freetype函式庫具有以下特點:
(1)它使得客戶應用程式可以方便地訪問字型檔案,無論字型檔案儲存在**,並且與字型格式無關。
(2)能方便地提取全域性字型資料,這些資料普遍存在於一般的字型格式中。(例如:全域性度量標準,字元編碼/字元對映表,等等)
(3)能方便地提取某個字元的字形資料(度量標準,影象,名字等其他任何資料)
(4)具備訪問字型格式特定的功能(例如:sfnt表,多重控制,opentype輪廓表)
使用freetype引擎來顯示字元的流程如圖.2所示(freetype team,2008)。
首先需要初始化freetype庫,然後依次根據字元的編碼處理乙個字元,把它轉化為點陣的點陣圖資訊,最後根據字元的資訊,在相應的地方把它顯示出來。
根據以上流程圖相應的函式如下:
(1)首先對freetype庫進行初始化,並且讀取向量字型檔檔案。
ft_init_freetype(&library);//建立新的庫物件,準備作其他操作時使用ft_new_face(library,filename,0,&face);
ft_init_freetype()他會預設地註冊一些模組。這個方式中,模組列表在構建時動態計算,並依賴ftinit部件的內容。
ft_new_face()通常用來建立外觀物件,如果函式呼叫成功,返回0。外觀物件包含一些用來描述全域性字型資料的屬性,可以被客戶程式直接訪問。它包括外
觀中字形的數量、外觀家族的名稱、風格名稱、em大小等。這個函式包括的引數library是乙個全域性的變數,而filename是向量字型檔的路徑(c檔案路徑名)。
這裡通過以上兩個步驟首先建立了freetype庫的乙個例項。然後使用乙個字型檔檔案來得到字型的face物件介面。
(2)得到face物件之後,需要設定當前字型的屬性,尺寸物件的內容可以通過呼叫函式ft_set_pixel_sizes()來改變。
當乙個新的face物件建立時,對於可伸縮字型格式,size物件預設值為字元大小水平和垂直均為10象素。對於定長字型格式,這個大小是未定義的,所以必
須在裝載乙個字形前設定該值。
ft_set_pixel_sizes(face,//當前face物件
16,//字元點陣寬度
16//字元點陣高度
);以上函式把字元象素設定為16*16象素,因此最後的點陣圖資訊就是16*16點陣象素。
1.2.
3.4.
5.6.
7.
**:libfreetype使用例子;
安裝我就不說了,自己安裝2.4.9版本;
例子**如下:
[cpp]view plain
copy
print?
#include
#include ft_freetype_h
#include
#include
int main()
//create font face from font file
error = ft_new_face(pftlib, "/usr/share/fonts/truetype/thai/waree-bold.ttf" , 0 , & pftface);
if ( ! error)
printf( " \n " );
} // free glyph
ft_done_glyph(glyph);
glyph = null;
} // free face
ft_done_face(pftface);
pftface = null;
} // free freetype lib
ft_done_freetype(pftlib);
pftlib = null;
}
freetype的使用及總結
總結 1 首先建立乙個庫 2 根據字型檔案得到face object 3 設定字型大小及第乙個座標值 4 載入face得到字型的glyph及buffer 5 顯示 每次顯示乙個字元都是根據前乙個字元的glyph得到下乙個字元座標的原點值,這樣方便顯示 include include include ...
HGE使用free type實現中文輸出
hge 使用free type 實現中文輸出 之前在irrlicht 論壇看到有日本人把 free type 字型庫用在 irrlicht 引擎裡,使該引擎支援多位元組文字輸出。但是他修改了引擎,後來我把他的 修改了下,使其不用修改引擎 就可以直接使用。考慮到過段時間可能會用 hge做些外包,就把這...
freetype的安轉和使用
1.tar xvj freetype 2.4.10.tar.bz2 2 cd freetype 2.4.10 3 configure 4 make 5 sudo make install usr local lib 1.如此時編譯 gcc show fontprint.c o show fontpr...