HanzFontMaker--支持所有字體的點陣取模軟件


HanzFontMaker程序是基於微軟.net 2.0平台開發的,所以需要先安裝.net 2.0運行時!請用戶自行到微軟官方網站下載安裝。

HanzFontMaker主界面如下圖:

無標題

設置好Font和MapSize屬性之后,點擊“輸出字庫文件”按鈕可以在程序目錄得到“data.bin”字庫文件和“head.c”文件。該字庫文件是攜帶自描述信息的,描述信息位於文件的0起始偏移處,共256字節。其中64字節的字庫描述信息和192字節的ASC字符寬高描述信息。由於ASC字符包含數字和字母,很常用,所以在生成的head.c文件中同樣包含了96個ASC字符(每字符2字節)的信息。

對於不同的字體,96個ASC字符可能不是等寬的,所以需要一些描述信息來指示每個ASC字符的寬度和高度。每個字符用2個字節來描述就夠了,分別是寬度和高度;所以有192個字節的ASC字符寬高描述信息。

64字節的字庫信息安排如下表(每字段都是小端字節順序):

偏移量

字節數

名稱

描述

0

2

HdrSize

總是為64。它表示有64字節字庫描述信息。

2

32

DescText

字庫識別文本。“This is an image as font!”

34

2

CharSize

字符的字節數。

36

1

CharStride

字符的行掃描寬度(單位是字節)。

37

1

CharLines

字符的行數(單位是:行)。

38

1

MapWidth

字符的位圖寬度(單位:點)。

39

1

MapHeight

字符的位圖高度(單位:點)。

40

1

AscWidth

最大ASC字符的位圖寬度(單位:點)。

41

1

AscHeight

最大ASC字符的位圖高度(單位:點)。

42

1

GbkWidth

最大GBK字符的位圖寬度(單位:點)。

43

1

GbkHeight

最大GBK字符的位圖高度(單位:點)。

44

20

Reserved

保留

上面表格中的各字段信息用法如下圖所示:

無標題

從字庫文件的256偏移處開始就是每個字符的點陣信息了。每個字符占用CharSize字節,所以總共有((96 + 8178) * CharSize)個字節(96個ASC和8178個GBK)。由於每個字符的CharSize是統一的值,所以在字庫中查找字符點陣數據是非常快速的,只需按照給定的字符編碼值計算即可得到點陣數據的偏移地址!

8178個GBK是按照GB2312標准編碼的,范圍是0xa1a1到0xf7fe;共87個區,每區有94個字符;所以有8178個漢字。

字符的取模規則是“橫向左高位”,適合大部分GUI系統使用!

HanzFontMaker還生成字庫的輔助C文件,它包含了每個ASC字符的點陣寬度和高度信息,和字庫文件中的192字節ASC字符寬高描述信息一致,以便開發者將非等寬ASC字符信息編譯在程序ROM中,加快ASC字符的顯示速度!

點擊“編輯字庫文件”按鈕可以打開造字程序,這個功能很強大!為了避免使用者誤將編輯過的字庫文件覆蓋,造字程序僅打開“hanz.bin”文件。如果您需要編輯生成的字庫文件,請把它重命名為“hanz.bin”,然后點擊“編輯字庫文件”按鈕即可!

無標題

字庫文件編輯器界面

(第一行顯示ASC字符;后續87行顯示GBK字符,每行94個字符)

無標題

字符位圖編輯界面

HanzFontMaker程序支持系統內安裝的所有字體!是目前能轉換字體最多的點陣造字程序。

HanzFontMaker是免費軟件,更強大的體驗就讓您自己來吧!

HanzFontMaker軟件 下載地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM