2011-11-29 145 views
0

这个def应该连接到数据库,并且如果参数正确,应该检索一个BLOB图像,但是我对如何显示该图像感到困惑。目前,它会显示除了我希望显示的BLOB图像之外的所有其他信息。我意识到将其设置为一个字符串是不正确的。任何人都可以帮助澄清一下如何让它在Tkinter中显示?如果没有,是否有其他解决方案?用Tkinter检索并显示来自Mysql数据库的BLOB图像

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) 

回答

0

我认为你需要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) 

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

更多信息:

相关问题