ハンブルソフト サポート掲示板

有限会社ハンブルソフトの製品関連の疑問に答える掲示板です。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  

29 / 47 ツリー    ←次へ | 前へ→

Humblesoft_GFXライブラリの解析 A.Iijima 18/8/17(金) 12:31 [添付]
影文字のスクロール表示 nari 18/8/17(金) 13:29
Re:影文字のスクロール表示 A.Iijima 18/8/17(金) 14:18
Re:影文字のスクロール表示 A.Iijima 18/8/18(土) 12:37 [添付]
画像拝見しました。 nari 18/8/18(土) 18:06

Humblesoft_GFXライブラリの解析  A.Iijima E-MAIL  - 18/8/17(金) 12:31 -

いつもありがとうございます。漢字などのフォントを表示させるときに、現在の背景を塗りつぶすのでなく、添付画像(数字"5"の例)のように影文字表示させることができないかと、ライブラリを見させて頂いております。背景を付けると目立たせることはできるのですが、電流が大きくなるのか欠点です。これを影文字で表示させたいと思い、解析中です。

 頂いたスクロールサンプル

  LedMat.print → Humblesoft_GFX::write → drawChar

と関数を呼び出していると思い、「Humblesoft_GFX.cpp」プログラムを変更して見ましたが、変わりません。(textbgcolorをゼロにしても背景色が表示)
アドバイスをお願いします。

引用なし

パスワード


[添付] :107_5.png (1.3KB)


・ツリー全体表示

影文字のスクロール表示  nari  - 18/8/17(金) 13:29 -

スクロールしない静止文字も表示ですと、
位置と色を変更して描画してやれば
できるはずです。

スクロール文字(ScrollText)で
影文字を描画するのは、ちょっと面倒です。


ScrollTextでは、一旦、単色のBitmap

https://github.com/h-nari/Humblesoft_GFX/blob/master/src/Bitmap.h

に文字を描画

https://github.com/h-nari/Humblesoft_LedMat/blob/master/src/ScrollText.cpp#L65

これを1列づつ表示させているので、

袋文字に対応するには、Bitmapのカラー対応版
を作成し、これにカラーで袋文字を描画後、
1列づつ表示という感じになるのかなと思います。

引用なし

パスワード



・ツリー全体表示

Re:影文字のスクロール表示  A.Iijima E-MAIL  - 18/8/17(金) 14:18 -

早速ありがとうございます。まずは固定文字の影文字を表示させることができました。
スクロール文字の影文字もこれからチャレンジしていきます。

引用なし

パスワード



・ツリー全体表示

Re:影文字のスクロール表示  A.Iijima E-MAIL  - 18/8/18(土) 12:37 -

自己レスです。

> https://github.com/h-nari/Humblesoft_LedMat/blob/master/src/ScrollText.cpp#L65
>
>これを1列づつ表示させているので、

というアドバイスを頂きましたので、「ScrollText.cpp」を変更して影文字を表示させました。画像を添付します。

元々のプログラムは、次のようになっており、m_bitmap.getPixel関数で0,1を判断し、TextColorとTextBGcolorのどちらかを設定しています。

if(m_oy +y >= 0 && m_oy + y < m_sch) {
m_led->drawPixel(m_xi, m_scy + m_oy + y,
m_bitmap.getPixel(m_ri, y) ? m_cText : m_cBg);
}

これを改良して、1ドットずらした位置をチェックしてTextBGcolorで描画、
その後、TextColorで描画するようにして対応しました。

以下が変更点です。(ScrollText.cppの91行目から)
座標のチェックなどしていないため、もしかするとまだ不具合があるかもしれません。

if(m_ri < m_gw){
for(int y = 0; y < m_gh; y++){
////変更ここから////
if( m_cBg != 0 ){
if(m_oy +y-1 >= 0 && m_oy + y-1 < m_sch) {
if( m_bitmap.getPixel(m_ri-1, y)!= 0 ){
m_led->drawPixel(m_xi, m_scy + m_oy + y - 1, m_cBg );
}
}
}
if(m_oy +y >= 0 && m_oy + y < m_sch) {
if( m_bitmap.getPixel(m_ri, y)!= 0 ){
m_led->drawPixel(m_xi, m_scy + m_oy + y, m_cText );
}
}
}
////変更ここまで////
m_ri++;
}


ただし、処理が多くなる分、一瞬処理のため止まります。今後の課題です。

引用なし

パスワード


[添付] :110_00.JPG (204.3KB)


・ツリー全体表示

画像拝見しました。  nari  - 18/8/18(土) 18:06 -

画像拝見しました。
素晴らしいですね。

bitmapはカラーにする必要はなく、
描画時に色と位置をずらしているわけですね。

スクロールの動きが、ぎこちなくなるのは、
ある程度仕方ないと思っています。
理由は、スクロール速度をLEDのリフレッシュレートと
関係なく変更可能にしているからです。

あと、事前に表示する内容が決まっているものであれば、
動画として作成し、SDカードに書き込み再生させる
方法があります。
この場合、表現方法は、動画編集ソフト次第ですので、
ほぼ無制限ですし、スクロールが一瞬止まるようなことも
起きないはずです。

引用なし

パスワード



・ツリー全体表示

29 / 47 ツリー    ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  

 6559
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3