当前位置: 编码机 >> 编码机资源 >> 图文详解GuiTool的编码方式以及存储
GuiTool是一款转换点阵字库的软件,非常灵巧,掌握其设置选项,将事半功倍,特别是存储格式和编码方式。如下图示:
一、存储格式
存储格式主要分2种:HeightFixed,NotFixed;
1、HeightFixed
HeightFixed表示等高模式,字符等高,且周边补白边。适用于一个编码对应一个字符,且逐个顺序显示。
2、NotFixed
NotFixed表示BBX模式,宽高不固定,只记录有效区域像素信息。适用于各种不同场景,包含字符叠加,内嵌等。
其二者差异化主要表现为:文件头、点阵信息,绘点,特效处理等等。
说明:后续涉及的文件头、点阵信息,皆与软件预设的存储格式相关。
二、编码方式
编码方式主要分3种:内码(MBCS),Unicode,精简Unicode。
1、内码
按内码的编码顺序存放字库。
它又分2种情况:CJK方块字、拉丁文。暂不支持NotFixed。
1.1、CJK
针对CJK(中日韩)方块字符,采取强制等宽等高处理,可以省去检索表,提高检索效率;计算一个字符点阵数据大小公式:(w*bpp+7)/8*h。
例如:单色(1bpp),24点阵,则所有字符宽(w)、高(h)皆为24,则一个字符点阵数据大小为:(24*1+7)/8*24=72。
数据:文件头+等宽等高点阵数据(字符数*单字符点阵数据大小)
检索:直接通过编码、字符宽高,即可通过公式计算定位点阵信息。
适应场景:内码,等宽字库。
1.2、拉丁文
拉丁文,不等宽,需要检索表,但由于编码少且规则,检索也非常高效便捷。
数据:文件头+检索表(*4Byte)+点阵数据
检索:通过编码快速定位检索信息,然后通过检索信息定位点阵信息。
适应场景:内码,编码范围:0x00~0xFF。
2、Unicode
按Unicode的编码顺序存放字库。
数据:文件头+段信息+检索表+点阵数据
说明:段信息记录字符分段信息,尽可能优化检索表空间。
检索:先通过编码定位编码段,然后计算在编码段中的位置定位检索信息,再通过检索信息定位点阵信息。
适应场景:字符多,连续字符。
3、精简Unicode
按Unicode的编码顺序存放字库。
数据:文件头+编码表+检索表+点阵数据
说明:编码表记录有效字符的所有编码,升序排列。
检索:通过查找编码在编码列表中的位置来定位检索信息,再通过检索信息定位点阵信息。
适应场景:字符少,非连续字符。
三、图文分析
注:由于字符数相同,都是个字符,故三个bdf文件大小相同,皆为KB,但是bin格式存储方式不一,大小存偏差。
1、存储空间
补充说明:unicode和精简unicode的空间差异,由于检索方式不同,导致检索表大小不同。换一句话说:精简unicode针对不连续编码,且字符少时,极致地优化了检索表空间,同时也会(稍微)降低检索效率。
2、检索效率
补充说明:由于检索方式不同,故检索效率存差异。效率值越小,表示效率越高。
3、绘点效率
补充说明:效率值越小,表示效率越高。
四、汇总比较
1、存储格式
2、编码方式
总结:
a、选择怎样的存储格式,什么样的编码方式,具体还请视实际情况而定。
b、推荐组合:unicode+notfixed,适应广,便于后期扩展。