ESP-WROOM-02でTFTに漢字を表示する

漢字フォントを切り替える


この漢字ライブラリ(フォントドライバー)の素晴らしいところは、様々な種類のフォントを使えることです。
FONTX形式のフォントファイルは、こ ちらこちらで 公開されています。
私はこ ちらで公開されている「IPAフォント」をFONTX形式に変換したILフォント(ILFONT03.zip)を利用させて頂いてい ます。

以下の様にメモリーが許せば、ゴシックと明朝の2つのフォントを読み込んで表示することもできます。


また、16ドットフォントではなく、24ドットフォントを使えば、きれいで大きな文字を表示することができます。



ゴシックと明朝の2つのフォントを使うスケッチは以下のようになります。
/*
 * Font切り替えサンプル
 * フォントファイルはこちら
 * http://ayati.cocolog-nifty.com/blog/2012/08/ipalx322416-64a.html
*/

#include <Adafruit_GFX.h>    // https://github.com/adafruit/Adafruit-GFX-Library
#include <Adafruit_ILI9341.h>   // https://github.com/adafruit/Adafruit_ILI9341
#include <Fontx.h>              // https://github.com/h-nari/Fontx
#include <Humblesoft_GFX.h>     // https://github.com/h-nari/Humblesoft_GFX
#include <Humblesoft_ILI9341.h> // https://github.com/h-nari/Humblesoft_ILI9341

IMPORT_BIN("/fontx/ILGH16XB.FNT", ILGH16XB); //16ドット半角ゴシックフォント
IMPORT_BIN("/fontx/ILGZ16XB.FNT", ILGZ16XB); //16ドット全角ゴシックフォント
IMPORT_BIN("/fontx/ILMH16XB.FNT", ILMH16XB); //16ドット半角明朝フォント
IMPORT_BIN("/fontx/ILMZ16XB.FNT", ILMZ16XB); //16ドット全角明朝フォント
extern const uint8_t ILGH16XB[], ILGZ16XB[], ILMH16XB[], ILMZ16XB[];

Humblesoft_ILI9341 tft = Humblesoft_ILI9341();
RomFontx font_gothic(ILGH16XB,ILGZ16XB);
RomFontx font_mincyo(ILMH16XB,ILMZ16XB);

void setup() {
  delay(100);
  tft.begin();
  tft.setRotation(3);
  tft.fillScreen(ILI9341_BLACK);

  tft.setTextSize(1);
  tft.setFont(&font_gothic);
  tft.print("16ドットゴシック\n");
  tft.print("日本語表示\n");

  tft.setFont(&font_mincyo);
  tft.print("16ドット明朝\n");
  tft.print("日本語表示\n\n");

  tft.setTextSize(2);
  tft.setFont(&font_gothic);
  tft.print("16ドットゴシック\n");
  tft.print("日本語表示\n");
 
  tft.setFont(&font_mincyo);
  tft.print("16ドット明朝\n");
  tft.print("日本語表示\n\n");

}

void loop() {
}


24ドットフォントを使うスケッチは以下のようになります。
/*
 * Font切り替えサンプル
 * フォントファイルはこちら
 * http://ayati.cocolog-nifty.com/blog/2012/08/ipalx322416-64a.html
*/

#include <Adafruit_GFX.h>    // https://github.com/adafruit/Adafruit-GFX-Library
#include <Adafruit_ILI9341.h>   // https://github.com/adafruit/Adafruit_ILI9341
#include <Fontx.h>              // https://github.com/h-nari/Fontx
#include <Humblesoft_GFX.h>     // https://github.com/h-nari/Humblesoft_GFX
#include <Humblesoft_ILI9341.h> // https://github.com/h-nari/Humblesoft_ILI9341

//IMPORT_BIN("/fontx/ILGH16XB.FNT", ILGH16XB); //16ドット半角ゴシックフォント
//IMPORT_BIN("/fontx/ILGZ16XB.FNT", ILGZ16XB); //16ドット全角ゴシックフォント
IMPORT_BIN("/fontx/ILGH24XB.FNT", ILGH24XB); //24ドット半角ゴシックフォント
IMPORT_BIN("/fontx/ILGZ24XB.FNT", ILGZ24XB); //24ドット全角ゴシックフォント
extern const uint8_t ILGH24XB[], ILGZ24XB[];

Humblesoft_ILI9341 tft = Humblesoft_ILI9341();
RomFontx font_gothic(ILGH24XB,ILGZ24XB);

void setup() {
  delay(100);
  tft.begin();
  tft.setRotation(3);
  tft.fillScreen(ILI9341_BLACK);
  tft.setTextSize(1);

  tft.setFont(&font_gothic);
//  tft.print("16ドットゴシック\n");
  tft.print("24ドットゴシック\n");
  tft.print("日本語表示\n\n");


}

void loop() {
}


続く....