2018年12月12日水曜日

WxPythonでdc.DrawBitmapを使って、画像を表示して見ました。


キャプチャ


参考サイト

まくまく 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 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

ページ

Featured Posts