以 12x12 的汉字点阵字体为例,为了满足字节对齐的要求,一般采用 12x16 的格式来记录,每个字的大小是 24 Bytes 。如果只覆盖 GB 2312 的 6763 个汉字,再加上 ASCII 字符和其他一些常用符号,按 7000 字计算,需要占用 168 KB 。
为了节省空间,考虑到有效的数据其实只有 11x11 ,不进行字节对齐了,每个字的大小是 15 Bytes ,仍然需要 106 KB ,而且读取字库的代码量肯定会增加,索引效率也会降低。维基百科说 7-zip 的 LZMA 算法非常适于嵌入式设备,不知道 LZMA 的代码本身要用多少空间?
或者,不知道有没有什么更好的方法进行压缩?又如何从压缩数据中提取出一个字的点阵呢?