freetype 使用小結

2021-06-26 15:23:51 字數 2051 閱讀 9924

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...