字体转换工具
备注
本章节介绍的是 独立的字体转换工具 (exe 程序),需要单独下载和运行。
字体转换工具功能:从标准内部码表(代码页文件)、自定义 Unicode 码表(或补充码表 .txt 文件,自定义 .cst 文件)中获取所有待转换字符对应的 Unicode 码。根据 Unicode 编码从字体文件(如 .ttf)中找到相应字符的矢量字体数据。将其转换为位图格式的点阵字体或者预处理后的矢量字体,并输出为 .bin 文件。
字体转换工具流程图
生成字体文件
如何生成对应的文件,请参考以下步骤:
将字体库文件复制到该目录
\FontConvertTool\font。
复制字体库文件
可以参考
\FontConvertTool\doc目录下的文档,了解每个参数的具体含义,通过编辑 FontConfig.json 配置字体参数。
编辑 FontConfig.json 文件
打开 setting.ini,修改可选配置项。
编辑 setting.ini 文件
双击或通过命令行执行 fontDirctionary.exe 生成 font.bin。
生成 font.bin 文件
FontConfig.json 参数说明
字段名称 |
字段含义 |
|---|---|
输出路径 (OutputFolder) |
工具输出路径。如果路径不存在会直接创建路径。 |
代码页 (codePages) |
按特定顺序排列的语言文本字符集列表。可以设置多组。 |
cst路径 (cstPaths) |
二进制 Unicode 代码表 cst 文件路径。可以设置多个。常使用标准范围集合表示。 |
自定义值 (customerVals) |
用户定义的连续 Unicode 字符。可以设置多组。 |
起始值 (firstVal) |
自定义的连续 Unicode 字符的起始值。 |
范围 (range) |
自定义的连续 Unicode 字符数量。 |
符号路径 (symbolPaths) |
字符集文件路径。支持直接字符读取和 16 进制 Unicode 编码两种格式。可以设置多组。 |
字体设置 (fontSet) |
用于指定要转换的字体相关设置。 |
加粗 (bold) |
指定转换后的字符是否加粗。 |
斜体 (italic) |
指定转换后的字符是否倾斜。 |
字号 (fontSize) |
指定转换后的字符大小。 |
字体 (font) |
指定用于转换的字体文件。支持填写相对路径以及文件名自动检索。 |
渲染模式 (renderMode) |
指定在转换后的字符位图中表示一个像素使用的位数。支持 1/2/4/8。 |
索引方法 (indexMethod) |
指定输出 bin 文件的索引模式。0 为地址索引,1 为偏移索引。 |
裁剪 (crop) |
压缩字体文件大小。建议始终开启。目前仅支持 IndexMethod=0 时的裁剪。 |
输出格式 (outputFormat) |
字体输出格式。0 表示点阵字体, 1 表示矢量字体。 |
Setting.ini 参数说明
gamma |
1 |
gamma 值是用于描述输入像素值和输出亮度之间非线性关系的参数。该值越大,文本亮度越高。 |
rotate |
0 |
字体旋转角度。0:不旋转。1:顺时针旋转 90°。2:逆时针旋转 90°。 |
字体大小评估
不同的字体配置会产生不同的文件大小,影响 Flash 存储空间的占用。以下是常用配置的大小参考:
常用场景推荐
使用场景 |
字符集类型 |
字号 |
位深度 |
字符数 |
大小 (KB) |
|---|---|---|---|---|---|
简单英文界面 |
ASCII |
24 |
2bpp |
95 |
14.15 |
西欧语言界面 |
ISO8859-1 |
24 |
2bpp |
193 |
28.69 |
中文基础界面 |
GB2312 |
24 |
2bpp |
7,478 |
749.03 |
中文完整界面 |
CP936(GBK) |
24 |
2bpp |
21,886 |
1717.88 |
日文基础界面 |
CP932 |
24 |
2bpp |
7,483 |
746.16 |
韩文基础界面 |
KSX1001 |
24 |
2bpp |
8,187 |
793.48 |
字符集类型对比
不同字符集类型包含的字符数量差异很大,直接影响文件大小。根据应用需求选择合适的字符集可以有效平衡功能和存储空间。
字符集说明
Latin(拉丁语系)
Lite (ASCII):95个字符,包含基本英文字母、数字和常用符号,适合纯英文界面
Mid (ISO8859-1):193个字符,包含西欧语言字符(法语、德语、西班牙语等),适合多语言欧洲市场
Full (UNICODE):3,006个字符,包含完整拉丁扩展字符集,适合全球化应用
Chinese(中文)
Lite (GB2312):7,478个字符,包含简体中文常用汉字(一级字库3,755字 + 二级字库3,008字)及符号,适合基础中文界面
Mid (CP936/GBK):21,886个字符,包含GB2312全部字符及繁体中文、生僻字,适合完整中文支持
Full (UNICODE):30,445个字符,包含中日韩统一表意文字,适合多语言混合显示
Japanese(日文)
Lite (CP932):7,483个字符,包含日文假名、常用汉字(JIS第一水准、第二水准)及符号,适合基础日文界面
Mid (CP932):7,483个字符,与Lite相同,CP932已包含常用日文字符
Full (UNICODE):16,077个字符,包含完整日文字符集及扩展汉字,适合专业日文应用
Korean(韩文)
Lite (KSX1001):8,187个字符,包含韩文音节、常用汉字及符号,适合基础韩文界面
Mid (CP949):17,106个字符,包含完整韩文音节(11,172个)及扩展汉字,适合标准韩文应用
Full (UNICODE):22,862个字符,包含完整韩文字符集,适合专业韩文应用
语言 |
Lite 字符数 |
大小(KB) |
Mid 字符数 |
大小(KB) |
Full 字符数 |
大小(KB) |
|---|---|---|---|---|---|---|
Latin |
95 |
14.15 |
193 |
28.69 |
3,006 |
289.48 |
Chinese |
7,478 |
749.03 |
21,886 |
1,717.88 |
30,445 |
2,390.48 |
Japanese |
7,483 |
746.16 |
7,483 |
746.16 |
16,077 |
1,527.48 |
Korean |
8,187 |
793.48 |
17,106 |
1,156.32 |
22,862 |
1,729.48 |
位深度影响
位深度决定了字体的显示效果和文件大小:
1bpp:黑白显示,文件最小,适合简单界面
2bpp:4级灰度,文件较小,显示效果较好,推荐用于一般应用(性价比最优)
4bpp:16级灰度,文件中等,显示效果优秀,适合高品质界面
8bpp:256级灰度,文件最大,显示效果最佳,适合高端产品
位深度 |
1bpp |
2bpp |
4bpp |
8bpp |
|---|---|---|---|---|
大小(KB) |
501.98 |
749.03 |
1,192.22 |
2,070.20 |
倍数 |
0.67x |
1x |
1.59x |
2.76x |
字号影响
字号越大,字体文件越大。理论上字号与文件大小呈平方关系增长(字号翻倍,文件大小约为4倍),但由于使用了压缩技术,因此字号翻倍的影响有所削弱。
语言 |
字号 |
字符集 |
字符数 |
大小(KB) |
倍数 |
|---|---|---|---|---|---|
Latin |
16 |
ASCII |
95 |
6.73 |
0.48x |
Latin |
24 |
ASCII |
95 |
14.15 |
1x |
Latin |
32 |
ASCII |
95 |
24.54 |
1.73x |
Chinese |
16 |
GB2312 |
7,478 |
532.40 |
0.71x |
Chinese |
24 |
GB2312 |
7,478 |
749.03 |
1x |
Chinese |
32 |
GB2312 |
7,478 |
1,181.83 |
1.58x |
矢量字体
矢量字体的主要优点是可以任意缩放,实现多字号复用,无需为每个字号单独生成字体文件。但文件大小通常比位图字体大。
语言 |
字符集类型 |
字符数 |
大小 (KB) |
|---|---|---|---|
Latin |
Lite |
95 |
10.56 |
Latin |
Mid |
193 |
25.62 |
Chinese |
Lite |
7,478 |
2,587.86 |
Japanese |
Lite |
7,483 |
2,782.93 |
Korean |
Lite |
8,187 |
2,558.50 |
选择建议
根据应用需求选择合适的字体配置:
存储空间有限:选择 Lite 字符集 + 1bpp 位深度
显示效果优先:选择 4bpp 或 8bpp 位深度
多语言支持:选择多个字体文件组合(如 Latin + Chinese)
多字号需求:选择多个字体文件或矢量字体
平衡方案:Mid 字符集 + 2bpp 位深度