<div>Howdy,</div><div>I am using PyQt 4.10.1 (Py2.7-qt4.8.4-x32) on windows XP. It appears that on this system, QImage(sip.voidptr, int, int, format) increases the reference count to the image data object, but does not decrease the refcount after the QImage is collected. Here's an example session, where I am generating a QImage from a numpy array:</div>

<div><br></div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>>>> from PyQt4 import QtGui</div><div>>>> import ctypes, weakref, sys</div><div>>>> import numpy as np</div>

<div>>>> data = np.zeros((100,100,4), dtype=np.ubyte)</div><div>>>> addr = ctypes.c_char.from_buffer(data,0)</div><div>>>> sys.getrefcount(addr)</div><div>2</div><div>>>> img = QtGui.QImage(addr, 100, 100, QtGui.QImage.Format_ARGB32)</div>

<div>>>> sys.getrefcount(addr)   # QImage added 1 to reference count</div><div>3</div><div>>>> import weakref</div><div>>>> ref = weakref.ref(img)</div><div>>>> del img</div><div>>>> ref</div>

<div><weakref at 0161F090; dead>  # QImage was collected</div><div>>>> sys.getrefcount(addr)  # but refcount is still 3</div><div>3</div></blockquote></div><div><br></div><div>Can anyone recommend a good way to convert from ndarray to QImage (preferrably without incurring any memory copy) ?</div>

<div><br></div><div>Thanks,</div><div>Luke</div><div><br></div>