見出し画像

Pico Inky Pac に JPEG 画像を表示する

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()


できてしまえば、なぁんだこんなに簡単だったのか!でした。

コメント、助言 大歓迎

試行錯誤の結果、とりあえず、動いた状態です。
誰かの参考になれば嬉しいのと、こんな方法もあるというコメントなどいただけると嬉しい。

この記事が気に入ったらサポートをしてみませんか?