在使用 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字体困扰的同学。
程序的源码:
更新日志:
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在使用字体时能少几个循环
全部资料51hei下载地址:
ucGUI-gb2312汉字生成器v7.2.zip
(268.78 KB, 下载次数: 135)
|