参考サイト
white wheelsのメモhttp://d.hatena.ne.jp/white_wheels/20100313/p3
wxPython GUI to Display a JPEG (.jpg) Image
https://www.daniweb.com/programming/software-development/code/216581/wxpython-gui-to-display-a-jpeg-jpg-image
画像表示の流れ
jpg1 = wx.Image(imageFile, wx.BITMAP_TYPE_ANY)で画像イメージ?を作成し
wx.StaticBitmap(self,-1, self.jpg1, (100 , 100), self.GetClientSize())
で画像を表示します。
で画像を表示します。
補足説明(機械翻訳)
wx.Image(self、name、type = BITMAP_TYPE_ANY、index = -1)
ファイルからイメージを作成します。パラメーター:
name ( string ) - イメージをロードする元のファイルの名前。
タイプ ( BitmapType ) - 次のいずれかです。
wx.BITMAP_TYPE_BMP :Windowsビットマップファイルを読み込みます。
wx.BITMAP_TYPE_GIF : GIFビットマップファイルを読み込みます。
wx.BITMAP_TYPE_JPEG : JPEGビットマップファイルを読み込みます。
wx.BITMAP_TYPE_PNG : PNGビットマップファイルを読み込みます。
wx.BITMAP_TYPE_PCX : PCXビットマップファイルを読み込みます。
wx.BITMAP_TYPE_PNM : PNMビットマップファイルを読み込みます。
wx.BITMAP_TYPE_TIFF : TIFFビットマップファイルを読み込みます。
wx.BITMAP_TYPE_TGA : TGAビットマップファイルを読み込みます。
wx.BITMAP_TYPE_XPM :XPMビットマップファイルを読み込みます。
wx.BITMAP_TYPE_ICO :Windowsアイコンファイル( ICO )を読み込みます。
wx.BITMAP_TYPE_CUR :Windowsカーソルファイル( CUR )をロードします。
wx.BITMAP_TYPE_ANI :Windowsアニメーションカーソルファイル( ANI )をロードします。
wx.BITMAP_TYPE_ANY :フォーマットを自動検出しようとします。
ここでビットマップファイルと書いてあったが、拡張子が bmpがビットマップファイルの
ことだと思うが、それだと 意味が通じない。ここでは単に画像ファイルと解釈しよう。
index ( int ) -
画像ファイルに複数の画像が含まれている 場合に読み込む画像のインデックスです。
これは、 GIF 、 ICO 、およびTIFFハンドラでのみ使用されます。 デフォルト 値(-1)は、
「デフォルト画像を選択する」ことを意味し、GIFおよびTIFFハンドラによって最初の画像
(index = 0)とし て解釈され、 ICOハンドラによって最大で最もカラフルなものとして
解釈されます。
ConvertToBitmap( self 、 depth = -1 )
wx.Imegeで作成されたイメージ?をbimapに変換それをしないと画像表示できないみたい。StaticBitmap(self、parent、id = ID_ANY、ビットマップ= NullBitmap、pos = DefaultPosition、size = DefaultSize、style = 0、name = StaticBitmapNameStr)
以下は引数の説明以下の説明でウィンドウとあるのは画像の間違いと思われる(機械翻訳のため)
parent ( wx.Window ) - 親ウィンドウ。 NoneはありNone 。
id ( wx.WindowID ) - コントロール識別子。 -1の値はデフォルト値を示します。
ビットマップ ( wx.Bitmap ) -
pos ( wx.Point ) - ウィンドウの位置。
size ( wx.Size ) - ウィンドウサイズ。
style ( long ) - ウィンドウスタイル。 wx.StaticBitmapを参照してください。
name ( string ) - ウィンドウ名。
画像を表示する機能を持ったコントロール (ウィンドウの一種)であり、他のコントロール
と同じように扱うことができる 。
wx.Bitmap を渡すだけで描画してくれるので使いやすいが、細かい制御は効かない
wx.PaintDC
デバイスコンテキストという、ウィンドウ内部に実際にグラフィックを描画するためのローレベルな API である
単体で使うことは出来ず、まず描画対象のウィンドウを用意し、そこからデバイス
コンテキストを取得して使う
ローレベルなためコード量は増えるし、簡単には扱えないが、自由度は高い
(引用です。引用元)
コード
E:\MyBackups\goolgedrive\myprg_main\python_my_prg\wxpython\image_paint\gazou_hyouzi_image.py
import wx
class Panel1(wx.Panel):
def __init__(self, parent, id):
wx.Panel.__init__(self,parent, id)
try:
imageFile= 'image.gif'
#jpgイメージからファイル(代替簡単な)方法をロードし、表示される
#実際に読み込むことができます。jpgを。pngを。またはbmp。gifファイルを
jpg1 = wx.Image(imageFile, wx.BITMAP_TYPE_ANY)
#jpg1 = jpg1.Scale(150,150, wx.IMAGE_QUALITY_HIGH)
self.jpg1 = jpg1.ConvertToBitmap()
except IOError:
print "Image file %s not found" % imageFile
raiseSystemExit
#左クリックで画像表示
self.Bind(wx.EVT_LEFT_DOWN, self.paintGazou)
def paintGazou(self, event):
#ビットマップは 左上隅から..、
#wx.StaticBitmap(self,-1, self.jpg1,
# (10 + self.jpg1.GetWidth(), 5))
#(0, 5) 表示位置 GetClientSizeで元画像の大きさで表示される
wx.StaticBitmap(self,-1, self.jpg1,
(100 , 100), self.GetClientSize())
app= wx.PySimpleApp()
#作成ウィンドウ/フレーム、親-1はIDがデフォルト
#画像の大きなフレームのサイズを増やす
frame1= wx.Frame(None, -1, "An image on a panel", size = (600, 500))
Panel1(frame1,-1)
frame1.Show(1)
app.MainLoop()
0 件のコメント:
コメントを投稿