>> When I try assignment, >> vptr[1] = 0x00 >> I get the message, >> TypeError: 'int' does not have the buffer interface
> I can't reproduce this - can you send a short, complete test that > demonstrates the problem. Here you go: Ubuntu 12.10, PyQt4 4.9.3-4 $ python Python 2.7.3 (default, Sep 26 2012, 21:53:58) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from PyQt4 import QtCore, QtGui >>> img = QtGui.QImage(100,100,QtGui.QImage.Format_ARGB32) >>> img.fill(0xdeadbeef) >>> vptr = img.bits() >>> vptr.setsize(img.byteCount()) >>> vptr[0] = 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' does not have the buffer interface >>> Particularly helpful for this use-case (QImage) would be the ability to set or retrieve 32-bit words via the voidptr. It isn't obvious to me how to get and set ARGB words from the image data accessed this way. The following seems awkward, and I am dubious it would be any faster than just calling img.pixel() -- def get_pixel_as_word( vptr, pixno ) : offset = pixno<<2 return (vptr[offset] << 12) | (vptr[1+offset] << 8) | vptr[2+offset] << 4) | vptr[3+offset] More pythonic and maybe faster: def get_pixel_as_tuple( vptr, pixno ) : offset = pixno<<2 return (vptr[offset], vptr[1+offset], vptr[2+offset], vptr[3+offset]) _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt