ich habe Bilder im jpg format in einer Postgres Datenbank als bytea abgespeichert.
Wie bekommt man nun diese Daten in eine QImage um sie anzeigen zu können?
Ausprobiert habe ich folgendes, aber es kommt:
TypeError: QImage(): argument 1 has unexpected type 'memoryview'
Code: Alles auswählen
def listener(self):
row = self.currentRow()
name = self.kommentare[row][0]
print(name)
content = []
try:
connection = psycopg2.connect(user = "user",
password = "xxx",
host = "115.115.115.115",
port = "5432",
database = "scanner")
cursor = connection.cursor()
sql = "select content from images"
sql += " where name = %s"
cursor.execute(sql,[name])
records = cursor.fetchall()
for row in records:
content.append(row)
except (Exception, psycopg2.Error) as error :
print ("Error PostgreSQL", error)
finally:
if(connection):
cursor.close()
connection.close()
bild = content[0][0]
self.b = Bild(bild)
self.b.show()
class Bild(QWidget):
def __init__(self,bild):
QWidget.__init__(self)
self.bild = bild
self.initUI()
def initUI(self):
self.sid = QImage(self.bild)
self.w = self.sid.width()
self.h = self.sid.height()
self.setGeometry(50,50,600,900)
self.setWindowTitle("Bild")
def paintEvent(self,event):
painter = QPainter()
painter.begin(self)
self.drawBild(painter)
painter.end()
def drawBild(self,painter):
painter.drawImage(5,5,self.sid)