Open1
Noto Sans JPなどのWebフォントを一部だけ切り出してファイルサイズを小さくするメモ
やりたいこと
特定のフォントファイルの使う際に、どの文字を使うかが決まっている場合に、その文字だけに絞る。
Noto Sans JPなど、ファイルサイズが大きい場合などに有用。
これをサブセット化という。
使うツール
python の fonttools を使う。コマンドで実行できる。
調べてみると様々なツールがあるが、コマンドで実行できるほうが数年後にアプデしたくなったときなどにも使える可能性が高く手順も思い出しやすいので個人的には運用しやすく感じる。
手順
fonttools インストール。pipがない場合はpythonをまずインストールしておく。
$ pip install fonttools
pyftsubset というコマンドが実行できるようになる。
pyftsubset に --text で渡すと、列挙した文字だけに絞ってくれる。
文字をファイルにして --text-file で指定も可能。
コマンドにすると以下のようになる。
pyftsubset NotoSansJP-Medium.ttf \
--text=┬└├│ \
--layout-features="*" \
--output-file=SlackChannelsGrounping-NotoSansJP-Medium.ttf
shファイルにしておくことで、今後の更新もしやすい。
build.sh
#!/bin/bash
pyftsubset NotoSansJP-Medium.ttf \
--text=┬└├│ \
--layout-features="*" \
--output-file=SlackChannelsGrounping-NotoSansJP-Medium.ttf
具体例
実際に使っている例
Noto Sans JP は元々5.4MBあるが、この4文字だけに絞れば4KBまで削れる。