前言
在做微信小程序时,需要使用第三方字体库,但是该字体库有30+MB大小,导致微信使用wx.loadFontFace
一直报错。网速很慢的话,极其影响用户体验,小的字体库没有问题,所以是字体库太大导致报错,并且加载也很慢,致使字体无法生效。换字体是不可能的,特此记录一下如何将38MB的字体库压缩成5.28MB的,这种压缩比率,一般的在线压缩或软件是达不到的。
经历一次压缩和转换最终从37MB压缩为5.28MB,已经达到我的需求了
压缩字体
前置条件:python环境
- 借助python环境,安装fonttools插件
没有pip包管理工具先装pip,详细的我就不说了,当然python环境是也必须的
pip install fonttools
- 下载字体编码列表文件,另存为sc_unicode.txt
下载地址:字体编码(打开直接网页打开,需要另存为sc_unicode.txt
文件)
- 执行压缩命令(注意字体文件和字体列表编码文件要放在同一个目录下面)
pyftsubset qijifallback.ttf --unicodes-file=sc_unicode.txt
// `qijifallback.ttf`(要压缩的字体文件)
// `sc_unicode.txt`(字体编码列表文件)
解释:
qijifallback.ttf
:要压缩的字体文件
sc_unicode.txt
:字体编码列表文件
压缩命令执行完毕后,会在当前目录出现压缩过的字体库qijifallback.subset.ttf
- 使用在线压缩工具 cloudconvert官网 ,将ttf文件转换成woff2文件(进一步压缩大小)
总结
经过亲自测试,压缩后依旧可用并且字体样式没受影响,从37M压缩到5.28M,压缩比例达到80%
最后再分享一个免费可商用的字体网站:https://www.ecan5.com/font/