カラーグラフィック画像を使ったSメータをLovyanGFXライブラリのスプライト機能を使い作成しましたが、元のSメータ画像の目盛りの赤色が青色で表示されてしまっていました。この青色となってしまう原因を探ってみました。
青色の目盛りカラー写真を撮るのを忘れたので、先の動画で青色の情報確認です。



元の画像ではSで9から上は赤色で塗られています。この画像の変換データが現状のSメータの画像表示では青色で表示されてしまっています。

signal.bmp_Image

Lang-ship

上記リンクのなかのLovyanGFXとは?には、AdafruitGFXやTFT_eSPIと一定の互換性をもちつつカリカリにチューニングされているグラフィックライブラリです。とあります。

この色数に関してのLovyanGFXライブラリの使用上の注意ということで説明しているサイトです。
これに基づいて、実際に確認もしてみたいと思います。

やはり、ライブラリのインクルード状態だけでスプライトを使う上での初期設定がされていないための問題であることが、なんとなく原因であろうことがわかってきました。
基本デフォルトで16ビットの色数らしいのですが、設定したTFT、と各スプライト事に宣言をしていなかったのが色が正常ではなかった原因ではないかと思います。この確認のため、スケッチ上に色数の初期設定を追加してみることにしました。緑色文字が追加した色数の初期設定箇所です。

void setup() {
  pinMode(SW_TX,INPUT);          

  lcd.init();
  lcd.setColorDepth(16);
  lcd.setSwapBytes(true);
  smeter.setColorDepth(16);
  needle.setColorDepth(16);
(以下省略)

実際にコンパイルして動作させてみると、目盛り上の赤色部が正常な色で表示されました。

color16setting

LovyanGFXライブラリではTFTの色数の初期設定は必ず行う必要があるということです。合わせて、使用したスプライトも色数の初期設定をしておくと違った色で表示されてしまうことがなくなります。
ちなみに、今回使用したLovyanGFXライブラリは、先のJF3HZB uebo氏の新しいバージョンのVFOsys2_00では240x320のサイズにも他の種類のTFTの各ダイアル項目の任意設定用ファイル上でもインクルードして使用しているようです。前のVFOsysよりも、LovyanGFXライブラリやオリジナルのフォントなどを使うことでさらに動作スピードの向上となっていると思われます。

つづく?

少しSメータデータの文字盤のフォントサイズを大きく変更してみました。
やり方は、inkskape ドローイングアプリで既存の文字の上に白色の四角形を上書きで消してから、お気に入りのボールドフォントで新たにアルファベット、数字を全部書き換えました。Sメータの針の太さに合わせたバランスをとるための最初の第一歩です。画像編集するためのアプリは自分で使いやすいものがいいと思います。私は、レーザーカッティングで使用し始めたinkscapeが慣れているため使用しました。

■inkscapeでオリジナルのサイズで画像を編集しました。
inkscape-redraw

■次には画像サイズを簡単に変更できるWindowアプリのペイントで画像の回転とサイズ変更をおこないます。
ペイントアプリ加工

最終の画像縮小でサイズをTFT液晶サイズの128x160ピクセルに合わせた時の画像がきれいかを確認です。この段階できれいでないと、PC用データに変換したデータの表示画像がきれいになりません。

■LCD Image Converterで拡張子(.h)のファイルにデータ変換します。
image-converter

変換時にPreviewで1倍のScaleでの取り込み画像も確認できます。

■変換したヘッダーファイルをスケッチのインクルードファイルのデータ領域に上書きで貼り付けします。そして、スケッチを再コンパイルして修正したSメータの文字盤が表示されることを確認します。
image-converter-mainform

■この手順で、まず、第一歩目の文字盤のフォント変更からやってみました。結果は以下の通りです。
針の太さに対してのアルファベットと数値がバランス取れてきています。

font-changetolarge



あとは、Sメータ文字盤の目盛りを太くすることが必要かと思います。これは手間がかかりそうなので、気が向いたときに、涼しいときに行いたいと思います。

今日も、外はカンカン照りで、34,5℃以上あり外へは出れません。扇風機のみなので30℃の部屋では、いくら趣味、遊びとはいえPC操作を暑いなかで行うのは大変です。熱中症にならないように水分補給をしながらでないといけません。注意が必要です。

つづく?