利用fontmin给cocos2d-x游戏字体瘦身

6 篇文章 0 订阅
5 篇文章 0 订阅

清宫Q传有很多文本需要显示,同时为了效果也使用了很多种不同的字体,导致字体文件占据程序包很大比例的空间,搜索了一下,找到了一款工具fontmin可以有效减少字体大小。

fontmin简介

fontmin是一个纯 JavaScript 实现的字体子集化方案,提供了 ttf 子集化,eot/woff/svg格式转换,css 生成等功能。虽说是被设计用来提升网页体验的,但也可以通过减少字体体积从而减少iOS/Android程序包的大小;-)

官网提供了一个很好的示例,展示了其压缩字体前后的效果:
fontmin官网示例

安装fontmin

$ npm install --save fontmin

测试是否安装成功:

$ fontmin

如果出现下面输出,则意为成功安装:

Provide at least one file to optimize
Example
fontmin font/* build
fontmin foo.ttf > foo-optimized.ttf
cat foo.ttf | fontmin > foo-optimized.ttf
See fontmin --help for more information.

使用fontmin优化字体

使用fontmin优化字体

  • fonts目录存放原始字体文件
  • texts目录存放每种字体需要显示的文字,例如daofeng.txt的内容为:
要把谁打入冷宫
  • generate_fonts.py的内容为:
#!/usr/bin/python
import os

def run():
    font_dir = './fonts'
    text_dir = './texts'
    for d in os.listdir(text_dir):
        with open(os.path.join(text_dir, d), 'r') as fp:
            # read texts to be displayed 
            text = fp.read()
            # get font path
            fontname = os.path.splitext(d)[0] + '.ttf'
            fontpath = os.path.join(font_dir, fontname)
            # generate compressed font
            cmd = 'fontmin -t "{text}" {font}'.format(text=text, font=fontpath)
            os.system(cmd) 

if __name__ == "__main__":
    run()

执行python ./generate_fonts.py之后,会产生一个build目录,可以看到优化后的字体已经变得很小了:

优化后的字体

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值