精简Unicode存储与检索,常被称为Simple Unicode。其主要目标:极致优化存储空间用于检索表。
配置选项:启用Simple Unicode搭配Height Fixed模式。
一、分段解释与图解
整体分为四个部分:文件头,编码表,检索表,以及点阵信息。
简要补充:字符数量决定了编码表和检索表的大小。
适用场景:当编码不连续且字符数量较少时,此方式尤为适合。
文件头的结构体详解
重点信息:字体高度、字符数、扫描方式以及位深度。
二、详细图例说明
1. 文件头详解
图中蓝色标记部分(共16字节)即为文件头。具体解析如下:
55 46 4C 12- 标识符头,用于判断是否为有效的字库文件。
其中,'53'(即字符'S')表示文件采用Simple Unicode编码格式。
'46'(即字符'F')和'4C'(即字符'L')为辅助识别信息。
'12'表示该字库文件版本为V1.2。
20 6B 03 00- 表示文件总长度,计算方式为0x00036B20。
00- 表示段的数量,此处为0表示无额外段。
0C- 表示字体高度,即12像素。
02 00- 表示字库包含的字符集类型。
38 1D- 表示有效字符数为7480个。
00- 表示扫描模式,具体设置需配合比对工具理解。
01- 表示位深度,参考值可为1、2、4、8,此处bpp值为1。
2. 编码表解释
3. 检索表解释
每条检索信息占4个字节,包含字符宽度和点阵信息的起始偏移地址。其结构体中,高6bit记录字符宽度,低26bit记录起始偏移地址。
4. 点阵信息说明
这是字库中所有包含字符的点阵数据集合。其存储方式与扫描方式有关,可能是横向、纵向,具体根据实际情况而定。如B3 1A,即二进制1011,配合位深度逐个处理即可。
三、相关代码参考
提供simple_unicode.h和simple_unicode.c文件作为参考。