https://blog.csdn.net/linxinfa/article/details/88427808
关于字体剥离和精简工具 FontSubsetGUI 和 FontPruner 的比较。
https://www.cnblogs.com/yaukey/p/compare_fontsubsetgui_fontpruner_for_unity.html
以上两种导入到项目中使用都没有问题,但是 FontPruner 更加精简准确
FontSubsetGU
注意红色线框部分,Glyphs 总共定义了 28562 个,同原始字体一样,但是 Empty 了 28542 个,就是如上 图一 中所有空白方快,他们都是缺失字体外形定义,但有字体符号表,也就是说有这个字但没有定义和映射字体外形,处于不可用状态
FontPruner
裁剪文本是16个,字体文件内可用的 Characters 也是16个,显示的 Glyphs 定义是17个,其中包含一个 .notdef 系统预留的定义(图四),值为0;也就是其余所有没用到的 Glyphs 都被裁剪掉了,变得更加精简,所以文件就更小。
https://github.com/cmd2001/FontPruner-python3
https://github.com/GameBuildingBlocks/FontPruner
Unity字体精简-FontPruner or FontSubsetPack
https://www.jianshu.com/p/2a83a544a59e
文章目录
一、前言
二、FontSubsetGUI工具
1、FontSubsetGUI下载
2、FontSubsetGUI使用教程
三、FontCreator工具
1、FontCreator下载地址
2、FontCreator使用教程
四、格式问题: OTF转TTF
五、FontPruner工具
1、FontPruner下载地址
2、FontPruner使用教程
六、Unicode字符百科
一、前言
在 Unity 中制作游戏时,很可能会导入一些外部字体,而从网上下载的字体,小则两三兆,大则十几兆的,这些字体文件既占包体又占内存,所以对动态字体的剥离和精简就很有必要了。
二、FontSubsetGUI工具
FontSubsetGUI是常用的字体精简工具。
1、FontSubsetGUI下载
FontSubsetGUI工具下载地址: https://gitcode.net/linxinfa/fontmaker/-/blob/master/FontSubsetPack.zip
2、FontSubsetGUI使用教程
准备好一个包含你需要字符的txt文件和TTF原文件。
运行FontSubsetGUI,选好TTF文件和TXT文件的路径,点击Proceed生成新TTF文件。
常用8000汉字:https://gitcode.net/linxinfa/fontmaker/-/blob/master/8000Hanzi.txt
常用标点符号和英文字母:https://gitcode.net/linxinfa/fontmaker/-/blob/master/symbols.txt
在这里插入图片描述
其中所需的字符为:
在这里插入图片描述
裁剪后生成的新的TTF字体只有361KB
在这里插入图片描述
三、FontCreator工具
FontCreator 是一款专业的可用来制作字体(TTF),字体设计软件。FontCreator功能非常强大,是广大字体修改爱好者的必备工具。FontCreator可以用来制作、编辑修改ttf, otf, ttc格式的字体文件,并生成可在任意设备使用的标准字体文件,是Windows系统下编辑制作字体。
我们可以使用FontCreator工具查看下生成的TTF字体。
1、FontCreator下载地址
FontCreator工具下载地址: https://gitcode.net/linxinfa/fontmaker/-/blob/master/FontCreator.zip
2、FontCreator使用教程
我们运行FontCreator,打开上面新生成的TTF字体,在预览中输入“你好世界”,因为不在我们上面的所需字符内,所以显示不出来
在这里插入图片描述
我们输入如果有来生,就可以正常显示出来了。
在这里插入图片描述
四、格式问题: OTF转TTF
FontSubsetGUI工具无法对OTF格式的字体进行裁剪,所以 如果是OTF格式的字体,那么可以使用FontCreator工具将OTF转成TTF
打开FontCreator,然后点【文件】-【打开】-【字体文件】打开一个OTF格式的字体
然后点【文件】-【另存为】保存成TTF格式的字体即可。在这里插入图片描述
五、FontPruner工具
还有一个不错的开源工具FontPruner,可以更好的裁剪字体。它是西山居公司开发的一款开源的字体裁剪工具。
1、FontPruner下载地址
FontPruner的介绍:https://gulu-dev.com/post/2017/2017-09-15-font-pruner-intro/content
FontPruner工具下载地址:https://github.com/GameBuildingBlocks/FontPruner
2、FontPruner使用教程
step1:安装python,jre
setp2:从作者github 下载文件包
setp3:自定义要保留的文字。找到src/FontExtract/unChineseOutPut.txt,在这记事本内填入你要保留的文字 保存
step4:准备我们处理的字体。我这里为了方便直接将ttf 字体拷贝到FontPruner.py同级目录。
step5: cmd进入FontPruner.py所在目录,使用命令FontPruner.py --inputPath=./ --inputFont=./字体名.TTF --tempPath=./
step6:处理完会在同级目录生成一个output 目录 ,咱们的目标字体文件就在里面。
六、Unicode字符百科
Unicode字符百科:https://unicode-table.com/cn/#control-character
————————————————
版权声明:本文为CSDN博主「林新发」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/linxinfa/article/details/88427808
======================
https://github.com/googlefonts/sfntly
github上下载google开源的sfntly,下载地址为:sfntly地址
下载完后解压,在eclipse中打开,接下来我们生成jar包,
右键点击SfntDump.java,选择export
设置路径点击finish。
得到sfnttool.jar,yi.ttf是我们要修剪的字体
在此处打开cmd,输入:
java -jar sfnttool.jar -s "富强民主文明和谐自由平等公正法治爱国敬业诚信友善" yi.ttf y2.ttf
y2.ttf就是修剪之后的ttf字体。
————————————————
版权声明:本文为CSDN博主「东城西阙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35605081/article/details/120845141
而提取常用汉字3000个左右,
使用 "細黑體_0.ttf" 提取子集仅仅2.5M,
使用 "mingliu_0.ttf" 提取的子集有8.5M 。(估计是跟字体库本身设置了什么有关)
https://blog.csdn.net/linxinfa/article/details/88427808
https://github.com/fonttools/fonttools
http://ecomfe.github.io/fontmin/#app