Python 使用OpenimageIO从内存加载QImage

Python 使用OpenimageIO从内存加载QImage,python,qt,qimage,Python,Qt,Qimage,我正试图从内存中加载QImage。PyOpenimageIO提供python数组中的像素:数组('f',[r1,g1,b1,r2,g2,b2])。 使用此功能: img = QtGui.QImage(pixels,spec.width, spec.height, QtGui.QImage.Format_RGB888) 或 给出了错误的结果,如下所示: setPixel()给出正确的结果,但速度非常慢。从img.constBits()获取和填充char*的速度稍微快一点。 如何从python数

我正试图从内存中加载QImage。PyOpenimageIO提供python数组中的像素:数组('f',[r1,g1,b1,r2,g2,b2])。 使用此功能:

img = QtGui.QImage(pixels,spec.width, spec.height, QtGui.QImage.Format_RGB888)

给出了错误的结果,如下所示:

setPixel()给出正确的结果,但速度非常慢。从img.constBits()获取和填充char*的速度稍微快一点。
如何从python数组的内存中加载QImage?

我认为没有更快的方法。Python数组与QImage的内部格式大不相同,因此某种转换是不可避免的。您需要使用
QImage::bits
QImage::scanLine
并手动填充数据。
img = QtGui.QImage(pixels.buffer_info()[0],spec.width, spec.height, QtGui.QImage.Format_RGB888)