如何将存储在sqlite中的图像显示到tkinter窗口中

时间:2019-06-20 12:01:30

标签: python sqlite tkinter

这是将输入框中的图像添加到数据库中的部分

def add_img():
    db=sq.connect('img.db')
    conn=db.cursor()

    with open(str(data.get()),'rb') as f:
        file=f.read()
    with open('yhu.png','wb') as p:
        p.write(f)
    conn.execute(''' INSERT INTO images(name,data)VALUES(?,?)''',(name,file))

    db.commit()
    db.close()

这部分应该将图像显示到tkiinter窗口中

def display():
db=sq.connect('img.db')
conn=db.cursor()
conn.execute('''SELECT * FROM images''')
row=conn.fetchall()

for i in row:

    it=i[1]
    this= open(str(len(i[1])),'wb')
    this.write(base64string.decode('base64'))
    this.close
    imgd=ImageTk.PhotoImage(this)
    panel=tk.Label(image=imgd,height=28,width=30)
    panel.image = imgd
    panel.grid()


db.close()

1 个答案:

答案 0 :(得分:0)

PhotoImage类可以接受二进制数据作为参数,而不必将其保存到文件中:

imgd = ImageTk.PhotoImage(data=it)

以上假设it是原始图像文件中的二进制数据。