精简TTF字体、FontPruner、汉字字体瘦身(非字蛛)
20190726更新 标黄部分
网上比应用比较多的 字蛛 http://font-spider.org/
本文使用了本机安装软件,得到瘦身后的 TTF 字体文件
准备工具:
python ; 我使用是 python-3.7.2.exe
jre; 我是用的是 jre-8u191-windows-x64.exe
FontPruner; https://gulu-dev.com/post/2017/2017-09-15-font-pruner-intro/content
我的使用环境:win 7 64虚拟机
step1:安装 python,jre
setp2:从作者github 下载文件包。
window平台使用需要修改一下作者的代码(window下有一个错误,linux无)
记事本打开

红色箭头加2括号即可

setp3:自定义要保留的文字
找到src/FontExtract/ChineseOutPut.txt 在这记事本内填入你要保留的文字 保存 (请留意文末标黄更新文字)
step4:准备我们处理的字体
我这里为了方便直接将ttf 字体拷贝到
同级目录
step5: cmd 进入
所在目录,使用命令 FontPruner.py --inputPath=./ --inputFont=./字体名.TTF --tempPath=./
step6:处理完会在同级目录生成一个output 目录 ,咱们的目标字体文件就在里面。
这里还要感谢下 yeqiang https://blog.csdn.net/hknaruto 同学 ;)
当我后面多次处理后发现,无法正常剔除文字(即使只输入保留一个汉字,也不正常),
经过排查后,发现根目录

内自动生成了以下txt,

而这里面保留了之前我选择保留的那些字的内容,
于是删除这两个文本,重新操作step3-step6 后 获得了符合预期的结果
同时我删除了src/FontExtract/ChineseOutPut.txt 同目录内 其他几个 txt 没必要
精简TTF字体、FontPruner、汉字字体瘦身(非字蛛)的更多相关文章
- 整理JRE瘦身或精简JRE
http://blog.csdn.net/xiaoping8411/article/details/6973887 版权声明:本文为博主原创文章,未经博主允许不得转载. 前不久给朋友做了一个桌面程序, ...
- 一键精简Windows不常用的字体.cmd
一键精简Windows不常用的字体.cmd @Echo offset path=%path%;%~dp0setlocal EnableDelayedExpansionset /P dv=请输入要精简W ...
- ttf,eot,woff,svg,字体格式介绍及使用方法
而由于网页中使用的字体类型,也是各浏览器对字体类型有不同的支持规格. 字体格式类型主要有几个大分类:TrueType.Embedded Open Type .OpenType.WOFF .SVG. T ...
- 为Windows 7的winsxs目录瘦身,谨慎。
刚使用Win7 系统不久,前段时间在清理系统垃圾时发现,win7系统的windows文件夹下的winsxs 文件夹占用空间很大,想清理之,却提示无权限无法清理.随即在网上查了个到底,原来winsxs是 ...
- iOS内置图片瘦身思路整理
一.前言 前段时间注意到我们APP的包大小超过100MB了,所以随口跟老板说了下能否采用字体文件(.ttf)替代PNG图片,老板对应用瘦身很感兴趣因此让我做下技术调研.这篇文章主要是将我们的各个技术方 ...
- APK瘦身-是时候给App进行减负了
前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装.前一段时间我司某一App进行APK的瘦身,最终也达到了减小10M的目标,现做一个简单的总结记录. ...
- iOS 内置图片瘦身
一.iOS 内置资源的集中方式 1.1 将图片存放在 bundle 这是一种很常见的方式,项目中各类文件分类放在各个 bundle 下,项目既整洁又能达到隔离资源的目的.采用 bundle 的加载方式 ...
- PyOpenGL利用文泉驿正黑字体显示中文字体
摘要:在NeHe的OpenGL教程第43课源代码基础上,调用文泉驿正黑字体实现中文字体的显示 在OpenGL中显示汉字一直是个麻烦的事情,很多中文书籍的文抄公乐此不疲地介绍各种方法及其在windows ...
- Android Studio 之 项目瘦身、代码检查
项目瘦身, 一.删除没有用到的资源(图片,string 等等) 先看怎么样找到没有用到的资源,注意:注释掉的 也属于没有用到的. 1.进行代码分析操作 2.查看分析结果 3.选择 Unused res ...
随机推荐
- [LC] 350. Intersection of Two Arrays II
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- TimeHelper
import java.time.Duration; import java.time.Instant; import java.time.OffsetDateTime; import java.ti ...
- Linux基本操作_20191117
VMware和Ubuntu的安装, 想来想去,还是需要安装,不能老是使用Windows的,后面还有很多都要用到Linux系统的,这个可以说是开发人员必备的了, 基本的使用: 1,Windows下面C: ...
- Jarque-Bera test|pp图|K-S检验|
Jarque-Bera test: 如何绘制pp图? 找该直线的截距和斜率,通过截距和斜率的值找到正态参数均值和方差,可对这些正态参数进行正态检验. K-S检验的的特点? 并不是只针对正态分布,是 ...
- linux误删除恢复(未验证)
extundelete 大家基本都知道,在linux上误删除了东西后果是很严重的,尤其是在服务器上误删除了东西,对于字符终端,想要实现恢复删除的数据更是难上加难,对于Linux误删除了重要的东西,虽然 ...
- Fastjson主要接口和类库说明
2.主要的使用入口 Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成. public static final ...
- 吴裕雄--天生自然 HADOOP大数据分布式处理:使用WinSCP连接本机与虚拟机
- django框架进阶-ModelForm组件-长期维护
############################################################ """ 通常在Django项目中,我们编写的大部 ...
- Longest Increasing Subsequence (Medium)
第一次做题思路201511092250 1.采用map存储,key为nums[i],value为以nums[i]为结尾的最大递增子序列的长度 2.采用map里面的lower_bounder函数直接找出 ...
- Serializable中的serialVersionUID是必须的吗
不写serialVersionUID就没有吗 即使不写, jdk反序列化时也会自动检查这个id, 反编译.class文件你也看不到这个值 rpc反序列化 如果使用jdk的方式, 这个必须配置 如果使用 ...