游戏开发的过程中,总免不了要使用一些字体库。
文章《引用地址》
然而字体库中的字不可能全部需要使用到,一个字体库小则几百K,大则十几M,这无疑增加了客户的流量费用,更增加了游戏的下载时间,使得游戏的体验更差。
不过,网络上有些字体提取工具,可以提取出指定的文字,避免了上述的情况。
下面我来说一下,最近找到的一款Google开源的字体提取神器——sfntly
开源地址:https://github.com/googlei18n/sfntly
(由于墙的原因,下载速度够慢,于是我mirror到OSC上了):http://git.oschina.net/cachegit/sfntly
下面介绍下编译及使用方式(因为PC安装的是java环境,所以编译的是java文件夹下的):
1. 下载源码到本地,并进入 java 目录,再使用 ant 方式编译 jar 包
git clone http://git.oschina.net/cachegit/sfntly cd sfntly/java ant
编译出来的包在当前目录的 dist 文件夹下
├─lib
├─sample
│ ├─sflint
│ └─sfntdump
└─tools
├─conversion
│ ├─eot
│ └─woff
├─fontinfo
├─sfnttool
└─subsetter
2. 真正使用到的工具在 dist/tools/sfnttool 目录下,执行命令行查看 参数
### 命令行 java -jar sfnttool.jar -h ### 参数介绍 Subset [-?|-h|-help] [-b] [-s string] fontfile outfile Prototype font subsetter -?,-help print this help information -s,-string String to subset -b,-bench Benchmark (run 10000 iterations) -h,-hints Strip hints -w,-woff Output WOFF format -e,-eot Output EOT format -x,-mtx Enable Microtype Express compression for EOT format
3. 下面进行字体提取,使用命令行 (源字体库放于此目录下,导出的字体库也在此目录)
java -jar sfnttool.jar -s '需要提取的字体' 源字体库 导出的最终字体库 ###ex java -jar sfnttool.jar -s '0123456789' llk.ttf llk2.ttf
注意:
我的运行环境是:
### ant $ ant -v Apache Ant(TM) version 1.9.7 compiled on April 9 2016 Trying the default build file: build.xml Buildfile: build.xml does not exist! Build failed ### java $ java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)