检索和使用的Tkinter从Mysql数据库显示BLOB图片(Retrieve and displa

2019-10-31 12:48发布

这应该高清连接到数据库,并在这些参数是正确的应该检索BLOB的图像,但我困惑如何显示图像。 目前,它会显示所有除此之外我要显示的图像BLOB的其他信息。 我意识到它设置为STRINGVAR是不正确的。 任何人都可以就如何得到这个在Tkinter的显示清晰一些帮助? 如果没有,是否有任何其他解决办法?

func = Tkinter.Toplevel()
func.title("blah")
func.geometry('400x400+0+0)

db = MySQLdb.connect(host='xxx.xxx.xxx.xxx', user='xxx',passwd='xxxx',db='xxxxx')
cursor = db.cursor()

FirstName = QE1.get()
LastName = QE2.get()
SSN = QE3.get()

cursor execute ("""SELECT pat_face FROM PATIENT WHERE pat_firstname=%s AND pat_lastname=%s AND pat_id=%s""",(FirstName,LastName,SSN))

PATFACEresults = StringVar()
PATFACEresults.set(cursor.fetchone())

db.close()

PATFACE = Tkinter.Label(func, textvariable=PATFACEresults).grid(row=0,column=1)

Answer 1:

我认为你需要PIL这个(也可能是StringIO的为好)。

就像是:

from PIL import Image, ImageTk
import cStringIO

...

results = cursor.fetchone()
data = cStringIO.StringIO(results.tostring())
pic = ImageTk.PhotoImage(Image.open(data))

patface = Tkinter.Label(func, image=pic)
patface.grid(row=0, column=1)

您也可以尝试保存图像直接到一个文件和从那里加载它。

更多信息:

  • http://zetcode.com/databases/mysqlpythontutorial/
  • http://www.effbot.org/zone/pil-index.htm
  • http://www.effbot.org/tkinterbook/


文章来源: Retrieve and displaying BLOB images from Mysql database with Tkinter