LoginSignup
1
0

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

Posted at

Pico Inky パック

Raspberry Pi Pico / Pico W 用の2.9インチのモノクロ電子ペーパーの「Pico Inky パック」を購入して、使ってみていた。
421546622_18412568902040327_3750609281171663144_n.jpg

綺麗な日本語フォントを入れるのは、容量的に無理そうだったので、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 を表示するサンプルコードは見つからなかった。
あちこちのサンプルからそれらしい部分をコピペして、最終的に表示できた。
やったー!
IMG_9699.png

うまく動作したソース

ちゃんと動作したソースコードはこちらです。

DisplayJPEG.py
# 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()

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

コメント、助言 大歓迎

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0