前言

当我们在搞汉化的时候,我们会找一个合适的字体。

而找字体就会引发一个问题:字体文件太大了怎么办?

很多时候我们的项目实际上不需要那么多的字符,因此字体中的十分甚至九分都是冗余的。

这个教程就是帮助各位来减少字体大小的,不过有一定技术门槛。

准备工作

步骤

  1. Python 安装完后,打开命令提示符,输入 pip install fonttools,安装 FontTools。
  2. 找到下载 cc.exe 的目录,打开命令提示符,输入:

    cc "计数文件名" "导出文件名"

    举例:如果你要计算字符的文件为 F:\foo.txt,导出到 F:\bar.txt,则输入:

    cc "F:\foo.txt" "F:\bar.txt"
  3. 打开导出的文件,复制所有内容。
  4. 打开浏览器,转到 UTF-8 转代码点工具
  5. 将复制的内容粘贴到左侧,将右侧内容复制下来。

  6. 新建一个文本文件,将复制的内容粘贴进去。
  7. 打开命令提示符,输入:

    pyftsubset "字体文件" --unicodes-file="新建的文本文件"

    举例:新建的文本文件为 D:\foo.txt,字体文件为 D:\font.ttf,则输入:

    pyftsubset "D:\font.ttf" --unicodes-file="D:\foo.txt"
  8. 导出的字体可以在字体文件的目录找到,格式为 字体名.subset.文件格式

    举例:字体文件为 D:\font.ttf,则导出文件为 D:\font.subset.ttf

大功告成!

结尾

  1. 这个方法我不确定 woffwoff2 能不能用,但是这俩都是被压缩了的字体,所以最好不要用这种格式来删字符,建议用 ttf
  2. 建议在用大于 2MB 的字体的时候先用这种方法删一下冗余字符。

    我用的字体大概 20MB,删完之后只有 300KB 左右。

  3. Character Counter 的源码:https://gist.github.com/ZiYueCommentary/3862de5d6a38f10786e2a3eddb56d829

附录

以下是我用于压缩字体文件大小的常用文字:https://www.ziyuebot.cn/characters.html

标签: 字体, Python