Files
luban-lite-t3e-pro/packages/third-party/awtk-ui/awtk/tools/font_gen/README.md

89 lines
2.1 KiB
Markdown
Raw Normal View History

2023-11-09 20:19:51 +08:00
# 字体工具
## 点阵字体生成工具
### 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
```