gpt4 book ai didi

python - 将 blob 图像数据加载到 QPixmap

转载 作者:行者123 更新时间:2023-12-04 10:13:17 24 4
gpt4 key购买 nike

我正在使用 PyQt4 为前端 GUI 编写程序,该程序访问后端数据库(可以是 MySQL 或 SQLite)。我需要在数据库中存储一些图像数据,下面是我用来将图像文件(JPEG 格式)导入到数据库中的 blob 数据字段的 Python 代码:

def dump_image(imgfile):
i = open(imgfile, 'rb')
i.seek(0)
w = i.read()
i.close()
return cPickle.dumps(w,1)

blob = dump_image(imgfile)
hex_str = blob.encode('hex')
# x"%s"%hex_str will be the string inserted into the SQL command

这部分工作正常。我的问题是关于如何从存储在 PyQt4 数据库中的图像数据创建 QPixmap 对象。我目前的方法包括以下步骤:

(1) 数据库中的Hex str -- cPickle&StringIO --> PIL Image Object
def load_image(s):
o = cPickle.loads(s)
c = StringIO.StringIO()
c.write(o)
c.seek(0)
im = Image.open(c)
return im

(2) PIL Image Object -->临时图片文件

(3) 临时图片文件 --> QPixmap

这种方法也很好用。但是如果我不必写入/读取可能会减慢程序对用户交互的响应的临时图像文件会更好。我想我可以使用 QPixmap::loadFromData()直接从存储在数据库中的 blob 数据加载,并希望这里有人可以向我展示如何使用此功能的示例。

TIA,

必应

最佳答案

您可以使用 QImage.fromData 静态方法从字符串加载图像,然后将其转换为像素图:

 image_data = get_image_data_from_blob()
qimg = QtGui.QImage.fromData(image_data)
pixmap = QtGui.QPixmap.fromImage(qimg)

关于python - 将 blob 图像数据加载到 QPixmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com