mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-05 05:27:58 +08:00
.. | ||
.gitignore | ||
expand_text.c | ||
font_dump.c | ||
font_gen.c | ||
font_gen.h | ||
gen_ascii.c | ||
main.c | ||
preprocess_text.h | ||
preprocess_text.inc | ||
README.md | ||
SConscript |
字体工具
点阵字体生成工具
1. 功能
fontgen 从指定的 tff 文件,提取指定字符集(从文件中读取)的 glyph,生成点阵字体文件(二进制或者 C 语言常量数组)。
2. 用法
Usage: ./bin/fontgen ttf_filename str_filename out_filename font_size [mono|4bits]
- ttf_filename tff 文件名。
- str_filename 字符集合 (需要哪些字符,就把那些字符放在本文件中,UTF-8 编码,参考 demos/assets/default/raw/fonts/text.txt)。
- output_filename 输出文件名。如果文件扩展名为“.bin“,生成二进制格式,否则生成 C 语言常量数据。
- font_size 字体大小(像素)。
- mono 是否生成单色字体,目前只有启用 freetype 时才有效。可选。
- 4bits 每个点用4位表示(可选,默认8位)。
示例:
./bin/fontgen design/default/fonts/default_full.ttf test.txt test.bin 18
3. 文本文件格式
为了使用方便,在文本文件中,除了可以直接列出需要的字符外,也可以指定一个范围,或者混合两种用法。
- 范围用 和 括起来,中间用-分隔。
[[0-9]]
- 指定 ASCII 字符范围。下面的文本表示所有数字,小写字母和大写字母。
[[0-9]][[a-z]][[A-Z]]
- 用十进制指定 uncode 的范围。下面的文本表示"中丮丯"三个字符。
[[20013-20015]]
- 用十六进制指定 uncode 的范围。下面的文本表示"中丮丯"三个字符。
[[0x4e2d-0x4e2f]]
或
[[0X4e2d-0X4e2f]]
或
[[0X4E2D-0X4E2F]]
文本展开工具
为了方便 fonttools 工具也支持指定范围,提供了一个小工具expand_text。它将输入文件中的范围展开后写入输出文件。
Usage:./bin/expand_text input_file output_file
从 TTF 字体文件中提取部分字体
可以使用 fonttools 中的 pyftsubset 工具提取:
安装:
pip install fonttools
示例:
pyftsubset ../../../fonts/msyh.ttf --text-file=../../demos/assets/raw/fonts/text.txt --output-file=../../demos/assets/raw/fonts/default.mini.ttf