数据库以varbinary格式存储图像。我得到的数据如下b'\xff\xd8\xff\xe0\x00\x10jfif\x00\x01\x01\x00 \x00
\x00\x00\xff\xe1\x00zexif\x。。。如果我使用代码我可以保存它们
photo_path = r'C:\1' + '\\'
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=DESKTOP-8EKCG28\RUSGUARD;DATABASE=RUSGUARDDB;UID=sa;PWD=123')
cursor = cnxn.cursor()
cursor.execute("SELECT Photo FROM [RusGuardDB].[dbo].[EmployeePhoto]")
retrieved_bytes = cursor.execute("SELECT Photo FROM [RusGuardDB].[dbo].[EmployeePhoto]").fetchall()
cursor.close()
sum = numpy.array(retrieved_bytes)
for a in range(len(sum)):
sum1 = sum[a]
with open(photo_path + 'new' + str(a) + '.jpg', 'wb') as new_jpg:
new_jpg.write(sum1)
我不想保存图片,我想直接在qlabel中显示它们。我该怎么做?
1条答案
按热度按时间2nbm6dog1#
从页眉看(
b'\xff\xd8
),这些似乎是标准的jpeg图像作为原始数据。你可以用
loadFromData()
,qt足够聪明,只要数据没有损坏,就可以从其内容中识别文件格式。请注意,该函数返回一个bool,说明加载是否成功,因此首先需要创建示例,然后调用该函数。