Arduino Library, load FONTX and get glyph, utf8 to shiftjis conversion
Fontxは、FONTXフォーマットのフォントファイルを扱うためのクラスです。 フォントデータから特定の文字のビットマップを取得することができます。
Humblsefot_GFXを経由し、小型LCDやOLEDなど様々なディスプレイに日本語 描画機能を追加するのに使用されています。
使用されているライブラリの例
Fontxクラスはインターフェースを定義するための抽象クラスで、 実際にはRomFontx , FsFontxクラスでフォントを使用します。
RomFontxは、フォントのデータをプログラム中に配置し、 ROMに書き込みます。プログラムのサイズが大きくなり、 書込に時間がかかるようになるという欠点はありますが、 簡単に使用できます。
このクラスでは、FontxファイルをC言語の形式に変換して使用します。 変換プログラムはperlで書かれていて fontx/fontx2h.plに置いてあります。
変換したファイルを用意して有りますので
Arduinoのスケッチから#includeするだけで使用できます。
| 変換済みのファイル | 説明 |
|---|---|
| fontx/ILGH16XB.h | IPAゴシックを元とした16dotフォント、半角 |
| fontx/ILGZ16XB.h | IPAゴシックを元とした16dotフォント、全角 |
| fontx/font6x8.h | Adafruit_GFXのデフォルトフォントをFONTX化したもの |
プログラムの例を以下に示します。
インクルードされたfontxのデータを用いて RomFontxクラスのコンストラクタでRomFontxを生成します。
Fontxのフォントは、通常全角用と半角用でファイルが別れているため RomFontxのコンストラクタは最大3つまでのfontxのデータを 指定することができます。
プログラムの例を示します。
#include <Fontx.h>
#include <fontx/ILGH16XB.h>
#include <fontx/ILGZ16XB.h>
RomFontx fontx1(ILGH16XB,ILGZ16XB);
...
Humblesoft_ILI9341 tft;
void setup()
{
...
tft.setFont(&fontx);
...
}使い方の例は examplesの romfontx_example にもあります。
FsFontxは、フォントのデータをROM上に��成されたFileSystemから読み出して 使用します。プログラムのサイズが大きくならないので、 書込時間が長くならないというメリットがありますが、 フォントデータをFileSystemに書き込む必要があります。
使い方の例はexamplesの fsfontx_example にあります。
このライブラリに同梱しているIPAフォントから作成されたフォントは 下記サイトのものを使用させて頂きました。
さまざまなFontxフォントがネット上で公開されています。
本ライブラリ作成にあたっては、下記サイトを 大変参考にさせて頂きました。