Skip to content
/ Fontx Public

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

License

Notifications You must be signed in to change notification settings

h-nari/Fontx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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フォントがネット上で公開されています。

参考情報

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages