2019/05/28(火) [n年前の日記]
#1 [cg_tools] BDFフォントをアウトラインフォントにしてみたい
bdf2ttf を使うことで、BDF ―― テキスト形式で書かれたビットマップフォント ―― を、ビットマップフォントを埋め込んだ状態のTTFに変換することはできたのだけど。
フォントサイズ指定に制限があるのはやはりちょっとアレだなと。どうせ元は 8x8ドットのフォントなのだから、ドット感がそのままのアウトラインフォントにできないものだろうか。
ググってみたら、FontForge を使うことで、取り込んだBDFを自動トレースしてアウトラインフォントにすることができるらしい。
_"bdf2ttfする方法。bdfresize -f 50でbdfを大きく...
_How to convert a bitmap font (.FON) into a truetype font (.TTF)? - Stack Overflow
_FontForge - An Outline Font Editor / Re: [Fontforge-users] convert BDF to TTF
Ubuntu Linux 18.04 LTS や、Windows10 x64 1809 上で、FontForge を起動して試してみたり。
たしかにアウトラインフォントっぽくなったのだけど、TTF を出力しようとすると「Self-intersecting」というメッセージが大量に出てしまう。どうやら「自己交差」という意味らしいけど…。ドット感をそのまま出した形状だと頂点が重なってしまうから自己交差と判断されてしまう模様。あまりに数が多すぎて、手作業で修正するのはちょっと厳しい。自動で修正できないものか…。まあ、一応 TTF として出力できるようだし、無視して出力しちゃおう…。
ちょっと関係ない話だけれど。Windows10 x64 1809上で、公式配布されてる FontForge 2019-04-13版を動かすと、入力欄で英文字を打っても半角カタカナになってしまう。Gtk+ のバグが、またしてもこんなところで出現するのか…。メモ帳等で文字列を打って、コピーして、FontForge の各入力欄に貼り付けをしてどうにか。
フォントサイズ指定に制限があるのはやはりちょっとアレだなと。どうせ元は 8x8ドットのフォントなのだから、ドット感がそのままのアウトラインフォントにできないものだろうか。
ググってみたら、FontForge を使うことで、取り込んだBDFを自動トレースしてアウトラインフォントにすることができるらしい。
_"bdf2ttfする方法。bdfresize -f 50でbdfを大きく...
_How to convert a bitmap font (.FON) into a truetype font (.TTF)? - Stack Overflow
_FontForge - An Outline Font Editor / Re: [Fontforge-users] convert BDF to TTF
Ubuntu Linux 18.04 LTS や、Windows10 x64 1809 上で、FontForge を起動して試してみたり。
- bdfresize を使って、かなり大きいBDFフォントを生成。bdfresize -f 64 hoge.bdf > hoge_x64.bdf とか。
- FontForge を起動して、「新規」を選択。
- エンコーディング → エンコーディング変換 → エンコーディングを指定。
- エレメント → フォント情報。「一般情報」で、EMの大きさ=2048、高さ=2048、深さ=0、下線の位置=0、Height=0に。
- ファイル → 取り込み → BDFフォントを選択。「背景として使用」にチェック。
- 編集 → 選択 → 出力に値するグリフ。
- エレメント → 自動トレース。
- エレメント → 座標を丸める、単純化、等々をして各文字の形をシンプルに。
- ヒント → ヒントを削除。
- メトリック → 幅を設定 → 2048 に。
- エレメント → フォント情報。フォント名が変わってしまっているから入力し直し。
- ファイル → フォントを出力。ttfを選んで保存。
たしかにアウトラインフォントっぽくなったのだけど、TTF を出力しようとすると「Self-intersecting」というメッセージが大量に出てしまう。どうやら「自己交差」という意味らしいけど…。ドット感をそのまま出した形状だと頂点が重なってしまうから自己交差と判断されてしまう模様。あまりに数が多すぎて、手作業で修正するのはちょっと厳しい。自動で修正できないものか…。まあ、一応 TTF として出力できるようだし、無視して出力しちゃおう…。
ちょっと関係ない話だけれど。Windows10 x64 1809上で、公式配布されてる FontForge 2019-04-13版を動かすと、入力欄で英文字を打っても半角カタカナになってしまう。Gtk+ のバグが、またしてもこんなところで出現するのか…。メモ帳等で文字列を打って、コピーして、FontForge の各入力欄に貼り付けをしてどうにか。
◎ potrace使用時のオプションをメモ。 :
以下のページで、potrace使用時のオプション指定が書かれてたので引用メモ。
_How to convert a bitmap font (.FON) into a truetype font (.TTF)? - Stack Overflow
FontForge 上では、ファイル → 環境設定 → アプリケーション、の設定で、potrace 利用時の設定ができるので、そこに上記のオプション文字列を貼り付けて「potraceを使用」をオンに、すればいいのかな。たぶん。
potrace のオプションについては以下が参考に、なるのだろうか。英文だからちょっとよくわからん…。
_Peter Selinger: Potrace
_How to convert a bitmap font (.FON) into a truetype font (.TTF)? - Stack Overflow
--turdsize 0 --opttolerance 0 --unit 1 --longcurve --gamma 0 --blacklevel 0 --cleartext
FontForge 上では、ファイル → 環境設定 → アプリケーション、の設定で、potrace 利用時の設定ができるので、そこに上記のオプション文字列を貼り付けて「potraceを使用」をオンに、すればいいのかな。たぶん。
potrace のオプションについては以下が参考に、なるのだろうか。英文だからちょっとよくわからん…。
_Peter Selinger: Potrace
[ ツッコむ ]
#2 [cg_tools][python] Pythonにもbdf2ttfというパッケージがあるらしい
ググっていたら、Pythonのパッケージで、bdf2ttf というものがあるようで。
_bdf2ttf - PyPI
_keidax/bdf2ttf.py
名前からして、BDF を、いきなり TTF に変換してくれるのだろう。素晴らしい。
気になって試用してみようとしたものの。これがちょっとややこしい状態で。
まず、該当パッケージは、fontforge というPythonパッケージを必要とする。Ubuntu Linux 18.04 の場合、fontforge と一緒に、python-fontforge もインストールすれば入手はできる。
ところが、この python-fontofrge は、Python 2.7用。
そして、bdf2ttf は、Python 3.x用のパッケージで…。つまり、Python 3.x 用の fontforge が無いと bdf2ttf は使えないのだけど、Python 3.x用の fontforge なんて無いわけで。これでは試用できない…。
bdf2ttf の作者様は、どんな環境でコレを作ったのだろう…。不思議だ…。
_bdf2ttf - PyPI
_keidax/bdf2ttf.py
名前からして、BDF を、いきなり TTF に変換してくれるのだろう。素晴らしい。
気になって試用してみようとしたものの。これがちょっとややこしい状態で。
まず、該当パッケージは、fontforge というPythonパッケージを必要とする。Ubuntu Linux 18.04 の場合、fontforge と一緒に、python-fontforge もインストールすれば入手はできる。
sudo apt install fontforge sudo apt install python-fontforge
ところが、この python-fontofrge は、Python 2.7用。
そして、bdf2ttf は、Python 3.x用のパッケージで…。つまり、Python 3.x 用の fontforge が無いと bdf2ttf は使えないのだけど、Python 3.x用の fontforge なんて無いわけで。これでは試用できない…。
bdf2ttf の作者様は、どんな環境でコレを作ったのだろう…。不思議だ…。
[ ツッコむ ]
以上、1 日分です。