赞助论坛
  • 14193阅读
  • 0回复

修改了一下字体玩玩 [复制链接]

楼层直达

发帖
58
精华
11
金币
882
威望
105
贡献
113
好评
41
注册
2010-01-05
楼主    quicktime 发表于: 2010-03-15 18:18:28 
修改了一下字体玩玩



在Haier系列发现至少两种字库。一种是24 x 24点阵的,每个字占72字节。字库不包含英文半角字符,换句话说只有汉字库。
字库按汉字区位码表顺序存放,但是不包含10~15区,88~94区的空白区域。

另外一种估计是24 x 12点阵(未经证实)。OP2010提供的卓异hi2023EC 1M系列就是这种。解压后的字库文件大小正好是前一种24 x 24的一半。

以24 x 24点阵字库为例,说明一下制作方法

1. 先了解一下压缩包格式。
  压缩包分为12字节压缩包头数据,以及压缩包数据。
  12字节压缩包头数据为:

  55 AA 5A A5 XX XX XX XX YY YY YY YY

  其中55 AA 5A A5为压缩包指示字节, XX XX XX XX为解压后的文件大小,YY YY YY YY为压缩包数据大小。

  压缩包数据紧跟着压缩包头数据,从第13个字节开始,长度为YY YY YY YY。压缩包数据使用lzss算法压缩。
 
  压缩工具和压缩包的详细信息请参见:
 
  原来坛子里有高手发布过windows 版的lzss工具,现在找不到了。
  [url]http://bbs.lcdhome.net/read-htm-tid-34283-fpage-1-toread--page-1.html[/url]

 
2. 找到字库压缩包。
  搜索55 AA 5A A5 00 08 5D 70,找到那一行数据。其中55 AA 5A A5为压缩包指示字节,00 08 5D 70是字库文件解压后的大小。如果是24 x 12点阵,该处为04 2E B8
  同时记下字库压缩包数据大小。

3. 制作字库。
  找一个点阵字库生成工具。俺用的是一个免费的工具,HZKCreator。该工具还需要mfc71.dll,如果提示缺少mfc71.dll,就下载一个,放到HZKCreator.exe一个目录下。
  选一个喜欢的字体,字体大小选24,然后生成字库。生成的字库文件,比如叫hzk24。
4. 修改字库文件。
  打开上一步字库文件,删除10~15区数据,删除的数据区域是EDF0 ~ 18C90。HZKCreator默认不会生成88区以后的数据。
  保存后,确认文件大小是548208字节(16进制是085D70)。
5. 压缩字库,压缩后的字库文件大小最好不要超过原字库压缩包数据大小。超过了怎么办,没试过。
6. 替换字库数据。同时修改压缩包数据头内,压缩包数据大小为新字库压缩包文件大小。
7. 修改CRC校验,参见坛内风寒的工具。
  俺没有用过风寒的工具,手工修改的。发现俺的bin文件里校验和op2010公布的校验地址不一样。
  flash header区没有AS_CRC32。校验区开始位置60000开始,结束位置从bin文件往回倒数最后一个FF的数据,往前四个字节是校验码,再往前是校验区结束位置。
本帖最近评分记录: 5 条评分