在使用 ucgui 做界面的時候。經常碰到需要自己做字庫的情況。
網上已有各種字體生成工具,但在實際使用過程中,總不能那么隨心所欲的轉換,
有的需要用unicode格式,有的字體顯示不全。
ucgui 的字體,就是 GUI_FONT 結構體
GUI_FONT 前面幾個函數,是字體顯示,測量等函數
這幾個函數,通常使用 GUI_FONTTYPE_PROP, GUI_FONTTYPE_PROP_SJIS 等2個宏替換。
GUI_FONTTYPE_PROP : 默認的字體函數
GUI_FONTTYPE_PROP_SJIS:寬字符通用的字體函數
GUI_FONT 緊接著指向第一個 GUI_FONT_PROP
GUI_FONT_PROP->Start, End 說明該表的起始結束字符
GUI_FONT_PROP->paCharInfo 指向第一個字符索引表
GUI_CHARINFO->XSize,XDist 字元的寬度(像素)
GUI_CHARINFO->BytesPerLine:字元的寬度(字節)
為此,本人專門寫了一個字體轉換程序,希望能幫到同樣受ucgui字體困擾的同學。
0.png (15.28 KB, 下載次數: 84)
下載附件
2018-11-3 13:58 上傳
程序的源碼:
0.png (44.83 KB, 下載次數: 85)
下載附件
2018-11-3 13:58 上傳
更新日志:
V1.0
用delphi寫的ucgui漢字生成器
ucgui自帶了一個,但是生成的漢字編碼是unicode
不符合我們平時的使用習慣。
所以這里我寫了一個delphi版的。
運行環境:xp(win7也許可用但我沒試過)
V2.0
排版修改
V3.0
解決運行出錯Bug
支持win7
V4.0
加入static
V5.0
解決英文字符寬度相等bug
解決某些情況下中文顯示錯亂bug
V6.0
改對齊方式為手動調整偏移
修復一個bug:總字體描述 ->YSize 填寫錯誤
v7.0 (20171030)
解決清除重復的漢字會刪錯bug
加清除中文標點
v7.1 (20171220)
v7.0一個bug產生的Prop被錯誤的加上數組下標,此版修復
v7.2 (20181103)
優化:字元轉換時寬度根據實際的寬度計算,非寫死,這樣gui在使用字體時能少幾個循環
0.png (30.52 KB, 下載次數: 71)
下載附件
2018-11-3 14:00 上傳
全部資料51hei下載地址:
ucGUI-gb2312漢字生成器v7.2.zip
(268.78 KB, 下載次數: 135)
2018-11-3 11:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|