From: Tim H. <tim...@ie...> - 2006-08-30 18:17:16
|
Johannes Loehnert wrote: > Am Mittwoch, 30. August 2006 19:20 schrieb Ghalib Suleiman: > >> I'm somewhat new to both libraries...is there any way to create a 2D >> array of pixel values from an image object from the Python Image >> Library? I'd like to do some arithmetic on the values. >> > > Yes. > > To transport the data: > >>>> import numpy >>>> image = <some PIL image> >>>> arr = numpy.fromstring(image.tostring(), dtype=numpy.uint8) >>>> > > (alternately use dtype=numpy.uint32 if you want RGBA packed in one number). > > arr will be a 1d array with length (height * width * b(ytes)pp). Use reshape > to get it into a reasonable form. > On a related note, does anyone have a good recipe for converting a PIL image to a wxPython image? The last time I tried this, the best I could come up with was: stream = cStringIO.StringIO() img.save(stream, "png") # img is PIL Image stream.seek(0) image = wx.ImageFromStream(stream) # image is a wxPython Image -tim |