如何子集化压缩字体

你是第个看到这篇文章的哦~

教程

目标

本文将实现:

1. 环境配置

2. 安装FontTools

3. 创建字符文件

4. 压缩字体

准备工作

你需要:

1. 一个字体文件(.ttf)

2. 一台电脑或手机termux

tips:此教程的表述主要以Windows为主,命令win、linux通用,用 绿色粗体 标识的可以根据实际情况更改

检查环境

Win+R输入cmd回车

输入 python --versionpython3 --version

如果显示python x.x.x说明已经有啦

如果没有显示这个:Windows用户请到Python官网下载,安装时记得勾选add python to path;linux用户应该不用我教了叭(

安装FontTools

在cmd输入 pip install fonttools brotli 如果安装了多个python:pip3 install fonttools brotli

输入 pyftsubset --help 如果显示帮助表示安装成功

创建字符文件

创建一个 txt 文件,并在里面输入你网页会用到的字符,例如:查看

tips:你也可以通过 Unicode 范围生成字符

以常用汉字 4E00-9FFF 为例,输入

python -c "import sys; sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf-8', buffering=1); print(''.join(chr(i) for i in range(0x4E00,0x9FFF+1)))" > D:\word.txt

即可生成到 D 盘下的 word.txt

去除文件中的 BOM、空格、换行并转换为 UTF-8 格式

Windows 用户

python -c "t=open('你的原 txt 文件路径','r',encoding='utf-8-sig').read();t=''.join(sorted(set(t.replace(' ','').replace('\n','').replace('\r',''))));open('D:/word_1.txt','w',encoding='utf-8').write(t)"

Linux 用户

python3 -c "import sys; t=open('你的原 txt 文件路径','r',encoding='utf-8-sig').read(); t=''.join(sorted(set(t.replace(' ','').replace('\n','').replace('\r','')))); open('word_1.txt','w',encoding='utf-8').write(t)"

压缩字体

终端执行

pyftsubset 你的 ttf 字体路径 --text-file=你的 txt 字符文件路径 --output-file=D:/output.ttf(生成的文件在 D 盘下)

压缩成 woff2 字体

终端执行

pyftsubset 你的 ttf 字体路径 --text-file=你的 txt 字符文件路径 --flavor=woff2 --output-file=D:/output.woff2 --layout-features='*'(生成的文件在 D 盘下)

教程就到这里了哦~(˶˃ ᵕ ˂˶) .ᐟ.ᐟ

留言

发表留言

tips: 把 yesreply@ciallovo.top 放到邮件白名单可以接收回复提醒喵~