想在 游戏/应用 中使用字体,让你的应用提升一个逼格;但是发现一个 .ttf 少则 几兆, 大则 十几兆,这时候可以通过 fontTools,来剔除不需要的畸形字体,保留常用字体;
1. 安装 python 环境
自行安装:
D:\fontProject>python -V Python 3.11.0
安装 pip
D:\fontProject>pip -V pip 22.3 from C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip (python 3.11)
2. 安装 fontTools
安装 fontTools
pip install fonttools
3. 执行脚本
新建一个文件夹:
放入要剔除的 ttf 字体;以及常用 的 word.text
Font/常用汉字库 3500.txt at master · kaienfr/Font · GitHub
中文字体字符Text. 6500 和 3500 两个版本 选着用
textMeshPro中文字体字符Text_textmeshpro控制-餐饮零售文档类资源-CSDN下载
然后我们执行脚本:
pyftsubset Alibaba.ttf --text-file=word.txt
会生成一个 subset.fft, 减了大概 90%
有个坑的是: 之前看网上有中写法这样:
pyftsubset Alibaba.ttf --text=$(cat word.txt) --no-hinting
一直报错:后来用上面的写法 OK
然后导入到 cocos creator 中一直显示这个错误:
Download Font [ Alibaba.subset1_LABEL ] failed, using Arial or system default font instead
填坑两个小时之后:
发现需要去转换一下就能用了:
Online @font-face generator — Transfonter