Pico Inky パック
Raspberry Pi Pico / Pico W 用の2.9インチのモノクロ電子ペーパーの「Pico Inky パック」を購入して、使ってみていた。
綺麗な日本語フォントを入れるのは、容量的に無理そうだったので、JPEG画像として作ったものを表示させようと思った。
ネットを調べると jpegdec というライブラリーが有って、簡単にできそうだった のだが、どっこい単純にはいかなかった。
試行錯誤の結果、できるようになったので、備忘録として投稿しておくことにした。
引っかかったところ
ここから紆余曲折をダラダラ書くので、動くコードを早くみたい人は飛ばしてみてください。
GIMP で作ったJPEGはだめだった
私はMacなのでJPEG画像を作るのに、GIMPでJPEGファイルを作って、それを表示させようとしたら RuntimeError: JPEG: could not read file/buffer.
というエラーが出た。
ファイルが読めないということは、ファイルの置き場所?名前?など調べても解らなかった。
エラーメッセージをネットでググるとラズパイのフォーラムの記事に、こんな記述があった。
Well.... looks like the issue was the images. I made them in GIMP. When I took a picture that was created in MS Paint I had no issue. :x
しょうがないので、Windows の Paint アプリでモノクロの画像データを作成して読ませてみたら、読み込はできたようだった。
not read
というエラーメッセージに惑わされた...
サンプルのコードは別のデバイス用だった
ネットで見つけた jpegdec のサンプルコードは、他の電子ペーパー用のものだったらしく、Inky には合わないのだった。
Pico Inky で JPEG を表示するサンプルコードは見つからなかった。
あちこちのサンプルからそれらしい部分をコピペして、最終的に表示できた。
やったー!
うまく動作したソース
ちゃんと動作したソースコードはこちらです。
# Display an image on a pimoroni Pico Inky
# -ynomura.com 2024
from picographics import PicoGraphics, DISPLAY_INKY_PACK
import jpegdec
# Create instances fpr Inky
display = PicoGraphics(DISPLAY_INKY_PACK)
# Create a new JPEG decoder for our PicoGraphics
j = jpegdec.JPEG(display)
# Open the JPEG file
j.open_file("imf_logo.jpg")
# Decode the JPEG
j.decode(0, 0, jpegdec.JPEG_SCALE_FULL)
# Display the result
display.update()
コメント、助言 大歓迎
試行錯誤の結果、とりあえず、動いた状態です。
誰かの参考になれば嬉しいのと、こんな方法もあるというコメントなどいただけると嬉しい。