Phoenix
では画像はwx.Image
クラスで扱う。
wx.Imageインスタンスを作成するときは、
import wx
img = wx.Image(filename)
のようにファイル名を指定するドキュメントやチュートリアルばかり。
しかし、docをよく読むと、stream
もパラメータとして渡せることになっている。
このstream
を使えばbyteになっている画像も表示できるだろう。
どうやって使うのか。試行錯誤をしてみると、どうやら以下の感じでいいみたい。
import io
import wx
with open('someimage.png', 'rb') as f:
# ここのbyte_dataを好きなものに置き換えればいける
byte_data = f.read()
bytesio = io.BytesIO(byte_data)
img = wx.Image(bytesio)
で出来上がり。作成したwx.Image
は用済みになったら、
img.Destroy()
をすべきかも。(まだ確かめてない)
ちなみに画面に映すには、wx.StaticBitmap
が紹介されている。
本当に表示するだけなので、不満なら自分でdc.DrawBitmap()
した方が良さそう。
コメント