[PyKDE] QImage.bits() should return a string?
Phil Thompson
phil at riverbankcomputing.co.uk
Wed Nov 12 14:10:01 GMT 2003
On Tuesday 11 November 2003 3:13 pm, Lopez-Gulliver, Roberto wrote:
> Hi all,
>
> From the PyQt docs on QImage :
>
> uchar *bits();
>
> The return value is a sip.voidptr object which is only useful if passed to
> another Python module.
>
> I'm using the following (swig-ed) to get the bits of the QImage as a
> python raw string so I can manipulate it later using PIL or using it as a
> texture in PyOpenGL. Where data_ptr, n = qimage.bits(), qimage.numBytes()
>
> PyObject *pointer_to_pystring(long data_ptr, int n)
> {
> return PyString_FromStringAndSize(data_ptr, n);
> }
>
> This works for me(TM) but I wonder if this should be added/included in
> PyQt by default. Probably under a different name to avoid surprises,
> something like "bits_pystr()" or so.
>
> Of course, you may say, if we do this for bits() we should do it for all
> the other funcs returning sip.voidptr ...
>
> Any commments/flames on this?
I think a better solution is to add a method to the sip.voidptr type to do the
conversion so you would do something like...
s = qimage.bits().as_string(qimage.numBytes())
Phil
More information about the PyQt
mailing list