转换PyQt4。QtGui.QImage公司对象到base64 PNG d

2024-09-28 22:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从PyQt4.QtGui.QImage object获取原始base64 PNG数据?我能找到的唯一一个似乎有用的方法是bits(),但它只返回一个sip.voidptr object,我不知道从那里到哪里去。在


Tags: 数据方法objectpngbitspyqt4sipbase64
2条回答

QImage表示图像,而不是图像文件。QImage对象不能有PNG、JPG或其他格式。您需要使用QImage::saveQImage保存为PNG格式。{可以保存到磁盘上。在这种情况下,QBuffer是一个方便的IO设备。它将数据存储在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数组。在

我不会再写了,因为这种东西很可能会导致崩溃(我现在没有测试数据)-你能不能不按照通常的方式加载图像?在

相关问题 更多 >