精简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 ...
随机推荐
- Fourier级数
目录 Fourier级数 函数的Fourier级数的展开 Fourier级数习题: Fourier级数 函数的Fourier级数的展开 Euler--Fourier公式 我们探讨这样一个问题: 假设\ ...
- 1005 继续(3n+1)猜想 (25 分)
题目:链接 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n=3 ...
- java面试题 -- 基础
1.抽象和封装的不同点抽象和封装是互补的概念.一方面,抽象关注对象的行为.另一方面,封装关注对象行为的细节.一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略.2.重载 ...
- css - 原生变量及使用函数 var()
零.序言 前两天在逛 blog 的时候看见一些内联样式新奇的写法时很纳闷,虽然说不上多么熟练,但是从来没见过 --color: brown 这样的写法,百度一番之后仍然没啥头绪,今天偶然看到一篇文章 ...
- Java IO: ByteArray和Filter
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中字节数组与过滤器的输入输出流,主要涉及以下4个类型的流:ByteArr ...
- 通过银行卡的Bin号来获取银行名称
/** * 通过银行的Bin号 来获取 银行名称 * @author 一介草民 * */ public class BankUtil { public static void main(String[ ...
- <JZOJ1329>旅行
贪心大水题 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm& ...
- [洛谷P3384] [模板] 树链剖分
题目传送门 显然是一道模板题. 然而索引出现了错误,狂wa不止. 感谢神犇Dr_J指正.%%%orz. 建线段树的时候,第44行. 把sum[p]=bv[pos[l]]%mod;打成了sum[p]=b ...
- spring boot 创建定时任务
@Scheduled默认创建的线程是单线程,任务的执行会受到上一个任务的影响,创建定时任务也比较简单 123456789101112 @Component@Configuration //1.主要用于 ...
- 为啥java要使用 set ()和get()方法---封装
封装性:属性封装,方法封装,类封装,组件封装等 例如:如果属性没有封装,那么在本类对象之外创建对象后,可以直接访问属性 private关键字,只能在本类中访问,想要在外部访问私有属性,我们需要提供公有 ...