из двоичных данных в wxbitmap - PullRequest
       21

из двоичных данных в wxbitmap

0 голосов
/ 28 декабря 2011

У меня есть устройство, которое хранит изображение в градациях серого в виде серии 8-битных целочисленных значений без знака.Я хочу написать программу на 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 Ответ

1 голос
/ 02 января 2012

Вы можете получить wxBitmap напрямую из массива numpy.
Это пример из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...