Processingでコンピュータにインストールされているフォントを確認する


Processingでデジタルアートやデザインを作っていく中で、いろんなフォントを活用することもあります。
loadFont()やcreateFont()でフォントを取り込んで利用していきますが、お使いのパソコンにインストールされているフォントを利用する場合には、どのフォントがあるのか確認するかと思います。

Processingでは、システムにインストールされているフォントを、リストとして取得し確認することができます。

ただ、少しだけうまくいかないこともありますので、それを踏まえたフォントの種類の確認方法をご紹介します。


インストールされているフォントの確認


Processingでシステムにインストールされているフォントの種類を確認するには、PFontクラスlist()メソッドを使います。

PFontクラス
Processingの.vlwフォーマットフォントを扱うためのクラスです。
フォントを扱うときの変数の作成で利用します。

list()メソッド
システムにインストールされているフォントのリストを取得します。
取得したリストは、文字列の配列として値が返ってきます。



配列で取得した情報を管理するので、String型の配列を作成します。
そして、printArray()で配列の中身をコンソールで確認します。

String[] fontList = PFont.list();
printArray(fontList);
システムにインストールされているフォントの確認



エディタのコンソールに、インストールされているフォントが確認できます。

ですが、少し気になるところが。
配列のインデックス番号[192]からのリストになっています。

ProcessingのコンソールでprintArrayやprintlnといった、改行ありでデータを出力していくことはよくありますが、表示に限界があり、私が確認したところでは500行ほどしか表示されませんでした。
最近では扱うフォントも増えて、多くのフォントがシステムにインストールされていることが多いです。

length()でリストの数を見てみると、私のMacbook Proには「690」のフォントがインストールされています。

int num = fontList.length;
println(num);
システムにインストールされているフォントの数を確認



他、Windows PCも持っていますが、Windowsでも「518」と結構インストールされています。


すべてのフォントを確認


膨大な配列のデータを一度に確認したい場合は、for文の繰り返し処理の中、print()で改行なしで表示すると問題なくすべて表示できます。
でも、文字列が改行なしでずらりと並ぶと、何が書いてあるのかわからなくなります。

for文で配列の数だけループ処理して、インデックス番号の表示やスペースを開けたりして、見やすくすると良いでしょう。

以下、サンプルコードになります。

String[] fontList = PFont.list();
for(int i = 0; i < fontList.length; i++){
  print(i + ":" + fontList[i] + "  ");
}
システムにインストールされているすべてのフォントの種類を表示



改行なしでも見やすいかたちで、データをコンソールに表示させることができました。

よくデザインされる方は、たくさんのフォントがインストールされているのではないでしょうか。
Processingのコンソールにも限界がありますので、for文のループ処理でうまく表示させてみてください。