2024-09-28 22:23:50 发布
网友
如何从PyQt4.QtGui.QImage object获取原始base64 PNG数据?我能找到的唯一一个似乎有用的方法是bits(),但它只返回一个sip.voidptr object,我不知道从那里到哪里去。在
PyQt4.QtGui.QImage object
bits()
sip.voidptr object
QImage表示图像,而不是图像文件。QImage对象不能有PNG、JPG或其他格式。您需要使用QImage::save将QImage保存为PNG格式。{可以保存到磁盘上。在这种情况下,QBuffer是一个方便的IO设备。它将数据存储在QByteArray中。然后我们可以使用QByteArray::toBase64来得到结果。在
QImage
QImage::save
QBuffer
QByteArray
QByteArray::toBase64
image = QImage(filename) data = QByteArray() buf = QBuffer(data) image.save(buf, 'PNG') print data.toBase64()
如果你想直接访问内存中的数据,你有正确的方法。它是一个C数组,并且没有关联的python对象,所以有点棘手。您需要:bits()的起始地址、depth()和byteCount()。ctypes.string_在你可以访问那里的数据,你可以使用已知的每像素位数和图像形状将数据传递给numpy数组。在
我不会再写了,因为这种东西很可能会导致崩溃(我现在没有测试数据)-你能不能不按照通常的方式加载图像?在
QImage
表示图像,而不是图像文件。QImage
对象不能有PNG、JPG或其他格式。您需要使用QImage::save
将QImage
保存为PNG格式。{可以保存到磁盘上。在这种情况下,QBuffer
是一个方便的IO设备。它将数据存储在QByteArray
中。然后我们可以使用QByteArray::toBase64
来得到结果。在如果你想直接访问内存中的数据,你有正确的方法。它是一个C数组,并且没有关联的python对象,所以有点棘手。您需要:bits()的起始地址、depth()和byteCount()。ctypes.string_在你可以访问那里的数据,你可以使用已知的每像素位数和图像形状将数据传递给numpy数组。在
我不会再写了,因为这种东西很可能会导致崩溃(我现在没有测试数据)-你能不能不按照通常的方式加载图像?在
相关问题 更多 >
编程相关推荐