HanzFontMaker--支持所有字体的点阵取模软件

时间:2024-03-06 16:30:03

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软件 下载地址