前提・実現したいこと
電光掲示板に日本語の文字を出力したいです。
そのために、東雲フォントをダウンロードしてプログラムに反映させましたが、思うように日本語が出力されません。
製作においては、raspberry Piでpythonを扱っており、文字コードはshift_jisです。
発生している問題・エラーメッセージ
東雲フォントをダウンロードさせ、日本語の文字を入力したところ、電光掲示板には全く異なった文字が出力されました。
( 例 )テキストを入力----->電光掲示板の出力
あああああ ----->安安安安安
おはよう ----->以逸案
感謝 -----> (表示なし)
@%$? -----> (表示なし)
aaaaa -----> (表示なし)
上記の例のように入力した日本語と、電光掲示板に表示される文字がまったく異なったものになってしまいます。
該当のソースコード
python
1#!/usr/bin/env python 2# Display a runtext with double-buffering. 3# -*- coding: shift_jis -*- 4from samplebase import SampleBase 5from rgbmatrix import graphics 6import time 7class RunText(SampleBase): 8 def __init__(self, *args, **kwargs): 9 super(RunText, self).__init__(*args, **kwargs) 10 self.parser.add_argument("-t", "--text", default ="あああ") 11#電光掲示板に設定される文字の設定(フォント、色など) 12 def run(self): 13 offscreen_canvas = self.matrix.CreateFrameCanvas() 14 font = graphics.Font() 15 font.LoadFont("../../../fonts/shnmk16b.bdf") 16 textColor = graphics.Color(0, 0, 255) 17 pos = offscreen_canvas.width 18 my_text = self.args.text 19#電光掲示板に表示される内容をひたすら繰り返す 20 while True: 21 offscreen_canvas.Clear() 22 len = graphics.DrawText(offscreen_canvas, font, pos, 26, textColor, my_text) 23 pos -= 1 24 if (pos + len < 0): 25 pos = offscreen_canvas.width 26 27 time.sleep(0.05) 28 offscreen_canvas = self.matrix.SwapOnVSync(offscreen_canvas) 29 30 31# Main function 32if __name__ == "__main__": 33 run_text = RunText() 34 if (not run_text.process()): 35 run_text.print_help() 36
試したこと
他の文字コード(utf-8)に変えてみた
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/15 12:55
2021/07/15 16:05