The database stores images in varbinary format. I am getting data like this b’xffxd8xffxe0x00x10JFIFx00x01x01x01x00x00
x00x00xffxe1x00ZExifx… I can save them if I use the code
photo_path = r'C:1' + '\' cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=DESKTOP-8EKCG28RUSGUARD;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)
I don’t want to save pictures, i want show them directly in QLabel. How can i do this?
Advertisement
Answer
I finded solution for my problem.
retrieved_bytes = cursor.execute("SELECT Photo FROM [RusGuardDB].[dbo].[EmployeePhoto]").fetchone() for row in retrieved_bytes: row_to_list = [elem for elem in row] pixmap = QPixmap() pixmap.loadFromData(bytearray(row_to_list)) self.label1.setPixmap(pixmap)