|
本帖最后由 yzwduck 于 2020-10-11 07:20 编辑
DB 文件理论上是可以手工修改的,主体格式是 UTF-16LE 编码的文本,不过需要注意下面两个地方:1、换行符是 \0\n,在 UTF-16LE 下由 4 个字节构成;
2、开头有 16 字节的二进制文件头,它由下面 4 个 uint32_t 小端数据构成:
magic: 当前是 fldd,不要修改;
num_files: 字体文件的数量;
num_face: 字体名称的数量;
size: 数据库文件本身的大小;
可以把需要新增的字体先单独创建一个数据库/缓存,然后手工 append(跳过前 16 字节)到原有的数据库里,最后更新文件头。这个文件里的数据没有索引、去重,这些步骤是每次读入该文件后再执行的。
我不打算实现手工往数据库添加字体的功能,追加字体的比较合理的做法,大概是通过修改时间+大小来检测文件是否有修改。
要实现这个功能,需要大幅修改扫描的流程,所以我计划在下一个大版本里再实现。
下一个版本会从 0 开始重构,如果一切顺利的话,在过年时会有雏形(只是 Python 脚本,但以后会有 Windows 原生程序)。
|
|