2011-12-28 6 views
0

グレースケールイメージを一連の8ビット符号なし整数値として格納するデバイスがあります。私は、ファイルからこれらのイメージを読み込み、wxBitmapを使ってそれらを表示するためのPythonプログラムを書こうと思います。私は動作するコードがありますが、フォーマット間の変換が多いため非効率的です。からバイナリデータをwxbitmapに変換

高速なコードについてのご意見をお待ちしております。

私の現在のコード:

imagearray=numpy.fromfile(file=self.f, dtype=numpy.uint8, count=npixels).reshape(Height, Width)[::-1] 
pilimage = Image.fromarray(imagearray) 
rgb= pilimage.convert('RGB') 
rgbdata = rgb.tostring() 
WxBitmap = wx.EmptyBitmap(Width,Height)    
WxBitmap.CopyFromBuffer(rgbdata) 
output=WxBitmap 

答えて

1

あなたがnumpyの配列から直接wxBitmapを得ることができます。
This is an example from wxPyWiki

import wx, numpy 

def GetBitmap(self, width=32, height=32, colour = (0,0,0)): 
     array = numpy.zeros((height, width, 3),'uint8') 
     array[:,:,] = colour 
     image = wx.EmptyImage(width,height) 
     image.SetData(array.tostring()) 
     wxBitmap = image.ConvertToBitmap()  # OR: wx.BitmapFromImage(image) 
     return wxBitmap 
関連する問題