Skip to main content

スムースフォント

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

アンチエイリアスフォントの表示

このリポジトリでは、Wio Terminalでアンチエイリアスフォントを使用する方法を示しています(つまり、日本語文字、ギリシャ文字、その他のUCS-2グリフを表示する)。さらに、スムースフォントを使用して、コンピュータ内のお気に入りのフォントで通常の英語文字を表示することもできます。

ライブラリのインストール

Wio Terminal用SDカードライブラリのインストール

Wio Terminal用TFT LCDライブラリのインストール

vlwフォントファイルの生成

ここでは、Wio Terminalでスムースフォントに使用できるvlwフォントファイルを生成する方法を示します。

ステップ1

Processingソフトウェアをダウンロードし、オペレーティングシステムに応じてダウンロードしてください。

ステップ2

Processingを開き、Tools -> Create Font...に移動します。

ステップ3

Create Fontウィンドウが表示されます。コンピュータにあるフォントを選択できます。フォントサイズを変更し、Characters...をクリックします。また、vlwファイルのファイル名を変更することもできます。

ステップ4

Character Selectorウィンドウが表示され、特定の言語のUnicode文字ブロック(この場合はBasic Latin)を選択できます。アジア文字の場合、CJK CompatibilityまたはCJKカテゴリのUnicodeブロックを使用することをお勧めします。 OKをクリックしてフォント設定を保存します。

ステップ5

File -> Saveに移動し、スケッチファイルをコンピュータのローカルドライブに保存します。これで、vlwフォントファイルが生成されました!

SDカードへの保存

vlwフォントファイルを生成したら、前のステップで保存したスケッチファイル内のdataフォルダ内にvlwファイルが見つかります。

次に、vlwフォントファイルをSDカードにコピーし、SDカードをWio Terminalに戻します。

LCDライブラリの設定

デフォルトでは、Wio Terminalのリソースを節約するためにLCDライブラリのスムースフォントオプションはオフになっています。したがって、Wio Terminalでスムースフォントを有効にするには設定が必要です。

Arduinoライブラリフォルダ(libraries) -> Seeed_Arduino_LCDに移動し、エディタでUser_Setup.hを開きます。#define SMOOTH_FONTを検索し、以下のように行をコメント解除します。

これでWio Terminalでスムースフォントが有効になり、好きなフォントや文字を表示できます!

表示

  • SDカードからWio Terminalにフォントをロードするには:
void loadFont(String fontName);

ここでfontNameはvlwフォントファイルの名前です。

  • vlw内のすべての文字を画面に表示するには:
void showFont(uint32_t td);

ここでtdはすべての文字を表示する際の画面間の遅延時間です。

  • フォントをアンロードするには:
void unloadFont();

画面に文字を表示するには、tft.println()を使用してtftライブラリ内の関数と同様に使用できます。さらに、tft.setCursor()tft.setTextColorなどの関数を使用して、文字表示の位置や色を変更することもできます。

注意: LCDライブラリ内のUser_Setup.hを確認し、#define SMOOTH_FONTがコメント解除されていることを確認してください。

完全なコード

完全なコードと例のvlwファイルをこちらからダウンロードしてください。

#include<SPI.h>
#include "Seeed_FS.h"
#include "SD/Seeed_SD.h"
#include"TFT_eSPI.h"

TFT_eSPI tft;

void setup() {
tft.begin();
Serial.begin(115200);
tft.setRotation(3);
tft.fillScreen(TFT_BLACK); // 黒背景

while(!SD.begin(SDCARD_SS_PIN, SDCARD_SPI)){
Serial.println("SDカードエラー!\n");
while(1);
}
delay(1000);

tft.loadFont("Apple-Chancery-24");
// 画面間で2秒(2000ms)の遅延で画面上にすべての文字を表示
tft.showFont(2000); // 注意: この関数はカーソル位置を移動します!

tft.setTextColor(TFT_RED,TFT_BLACK);
tft.setCursor(0,0);

tft.println("こんにちは");
tft.println("さようなら");
tft.println();
tft.unloadFont();

tft.loadFont("Latin-Hiragana-24");
tft.setTextColor(TFT_GREEN,TFT_BLACK);
tft.println("こんにちは");
tft.println("さようなら");
tft.unloadFont();

}
void loop(){}

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験をスムーズにするために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを提供しています。

Loading Comments...