threejs 中文字体精简方法

threejs中需要显示中文字体,这就意味着需要引入中文字体,引入方式这里介绍两种,一种是引擎默认的ttf字体文件转换成json格式然后再使用FontLoader,这种方式目前存在各种问题,第一是ttf转json格式原本2M的ttf字体转后到7-8M,对于网页来说基本没什么用处了,再一个服务器一旦开启gzip就无法获取json格式的content-length,所以加载进度条也没法用了。这里重点介绍TTFLoader直接加载ttf字体文件,这样不存在格式转化问题,不说文件多小么至少没大起来,重点来了,python有一个FontTools字体精简工具,可以生成所需字体的文件,拿我的来说从json 8M的使用TTFLoader缩到2M,加上gzip就更小,再使用FontTools生成字体就只有几10K了,没错,就是10K
下面具体讲下搭配使用FontTools安装和使用过程
首先安装python环境,这个就不再多说了
接下来就是安装FontTools,下载地址 https://github.com/behdad/fonttools/releases
安装也非常简单,直接进入目录执行

$python setup.py build
$python setup.py install

就完成了
FontTools有针对字体个各式各样的操作, 教程 ,这里只说我们需要的那个功能

 $pyftsubset font.otf --text=" 汉字 "
--text选项用于指定需要保留的字符
--text-file选项用于指定一个包含需要保留的字符的 txt 文档
--output-file选项用于指定输出文件的保存位置
eg:pyftsubset msyh.ttf --text="汉字" --output-file msyh_sub.ttf 就生成了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_________MAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值