MiniGui varbitmap font 是一种变宽位图字体,对于不等宽字体采用这种位图字体格式是比较理想的;但MiniGui官方对这种字体的介绍资料很少(我找了很久都没找到 :=( ),只能研究MiniGui的源代码来了解这种位图字体文件格式。我这里研究的是varbitmap font 1.0版本。
MiniGui varbitmap字体的实现在varbitmap.c中, LoadVarBitmapFont 函数实现了位图文件的加载,通过这个函数的研究可以了解到verbitmap字体的大体文件格式。
version: 版本号,这里版本号是 vbf-1.0** ,占10个字节;
len_header: 文件头长度,文件头是指verion到font_size之间的字节数,这里是43个字节;
max_width: 最大字符宽度;
ave_width: 平均字符宽度;
height: 字符高度;
descent: 未知 :=(
first_char: 字库的第一个字符;
last_char: 最后一个字符;
def_char: 默认字符;
len_offsets: 字体点阵偏移区域的长度(对于变宽字体点阵,每个字体都有一个偏移指针,以便索引到该字体点阵,所有字体点阵的偏移指针都存放在offset区域中,offset区域的长度存放在len_offsets中);
len_width: 字体点阵宽度表的长度(对于变宽字体点阵,每个字体都有一个宽度值,所有字体的宽度值都存放在width区域中,width区域的长度存放在len_width中);
len_bits: 字体点阵的总长度;
font_size: 指整个varbitmap字体文件的长度;
font_name: varbitmap字体文件的名称,例如Arial--rrncnn-15-16-ISO8859-1.vbf;
offset: 字体点阵偏移区域;
width: 字体点阵宽度表;
bits: 字体点阵;
http://download.csdn.net/detail/fang437385323/9545140
这是一个测试程序,MiniGui代码中内置了3种varbitmapfont字体,但是是直接集成在代码中,此程序把代码中的点阵写入到.vbf文件中。