Skip to content
Arduino Library, load FONTX and get glyph, utf8 to shiftjis conversion
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
fontx
src
.gitignore
LICENSE
README.md
library.properties

README.md

Fontx

Arduino Library, load FONTX and get glyph, utf8 to shiftjis conversion

概要

Fontxは、FONTXフォーマットのフォントファイルを扱うためのクラスです。 フォントデータから特定の文字のビットマップを取得することができます。

Humblsefot_GFXを経由し、小型LCDやOLEDなど様々なディスプレイに日本語 描画機能を追加するのに使用されています。

使用されているライブラリの例

クラス構造

Fontx クラス

Fontxクラスはインターフェースを定義するための抽象クラスで、 実際にはRomFontx , FsFontxクラスでフォントを使用します。

RomFontx クラス

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 クラス

FsFontxは、フォントのデータをROM上に作成されたFileSystemから読み出して 使用します。プログラムのサイズが大きくならないので、 書込時間が長くならないというメリットがありますが、 フォントデータをFileSystemに書き込む必要があります。

使い方の例はexamplesの fsfontx_example にあります。

Fontx ファイルの入手方法

このライブラリに同梱しているIPAフォントから作成されたフォントは 下記サイトのものを使用させて井田抱きました。

さまざまなFontxフォントがネット上で公開されています。

参考情報

本ライブラリ作成にあたっては、下記サイトを 大変参考にさせて頂きました。

You can’t perform that action at this time.