参考サイト
まくまく Python ノートwxPython によるグラフィックス処理を理解する
http://maku77.github.io/python/wxpython/graphics.html
画像表示の流れ
image = wx.Image('test.jpg', wx.BITMAP_TYPE_JPEG)で画像イメージ?を作成して
dc.DrawBitmap(self.bitmap, 0, 0, True)
で画像を表示します。
dc = wx.PaintDC(self)
で、ウィンドウが他のウィンドウに隠れたとかした時などに、再描画するために必要です。
補足説明
wx.Bitmap
画像イメージ?を作成するようです。DrawBitmap (自己、ビットマップ、x、y、useMask = False)
x,yは画像の表示位置座標(以下機械翻訳)
指定したポイントのデバイスコンテキストにビットマップを描画します。
transparentがTrueで、ビットマップに透明マスクがある場合、ビットマップは透過
的に描画されます。
モノビットマップを描画する場合は、現在のテキストの前景色を使用してビットマップの
前景を描画し(すべてのビットを1に設定)、背景を描画する現在のテキスト背景色
(すべてのビットを0に設定)を使用します
wx.PaintDC
デバイスコンテキストという、ウィンドウ内部に実際にグラフィックを描画する
ためのローレベルな API である
単体で使うことは出来ず、まず描画対象のウィンドウを用意し、そこからデバイス
コンテキストを取得して使う
ローレベルなためコード量は増えるし、簡単には扱えないが、自由度は高い
(引用です。引用元https://teratail.com/questions/75951)
コード
E:\MyBackups\goolgedrive\myprg_main\python_my_prg\wxpython\image_paint\gazou_hyouzi_bitmap.py
# coding: UTF-8
#http://maku77.github.io/python/wxpython/graphics.html
#bitmap
import wx
class MyFrame(wx.Frame):
 def __init__(self):
  wx.Frame.__init__(self, None, -1, "Title", size=(150,100))
  # Load bitmap.
  self.bitmap = wx.Bitmap('sample.png')
  # Bind events.
  self.Bind(wx.EVT_PAINT, self.OnPaint)
 def OnPaint(self, evt):
  dc = wx.PaintDC(self)
  # Clear the buffer.
  dc.SetBackground(wx.Brush('sky blue'))
  dc.Clear()
  # Draw graphics.
  #引数の数字は画像の位置座標
  dc.DrawBitmap(self.bitmap, 0, 100)
if __name__ == '__main__':
 app = wx.PySimpleApp()
 MyFrame().Show()
 app.MainLoop()
0 件のコメント:
コメントを投稿