unable to make PIL work with cairo

wecing <[email protected]>
Newsgroups gmane.comp.python.image
Message-ID <[email protected]>
I wrote my code like this:

>     def video_observer(self, f):
>
>         img = Image.frombuffer('RGB', (self._width, self._height), f.data,
>> \
>
>                                'raw', 'RGB', 0, 1)
>
>
>>         img = img.resize((self.nwidth, self.nheight))
>
>         img.save('%d.jpg' % self.cnt, 'JPEG') # debug! :-P
>
>
>
>         imgd = img.tostring('raw', 'RGBA', 0, 1)
>
>         a = array.array('B', imgd)
>
>
>>         surface = cairo.ImageSurface.create_for_data(a,
>> cairo.FORMAT_ARGB32, \
>
>             self.nwidth, self.nheight, self.nwidth * 4) # self.nwidth * 4
>
>
>>         surface.write_to_png('%d.png' % self.cnt)
>
>
>>         self.context.set_source_surface(surface, 0, 0)
>
>         self.context.paint()
>
>
Output of img.save() is perfectly correct, but...

>   File "main.py", line 98, in video_observer

    imgd = img.tostring('raw', 'RGBA', 0, 1)

  File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 535, in
> tostring

    e = _getencoder(self.mode, encoder_name, args)

  File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 399, in
> _getencoder

    return apply(encoder, (mode,) + args + extra)

SystemError: unknown raw mode


Why?

_______________________________________________
Image-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/image-sig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.