2013-03-30 6 views
6

मैं एक लेबल में दिखाने के लिए एक छवि प्राप्त करने की कोशिश करने के लिए दो अलग बातें की कोशिश की है दे रही हैTkinter छवि प्रदर्शित नहीं हो या कोई त्रुटि

#This gives " TclError: couldn't recognize data in image file "TestImage.gif" " 
imgPath = "TestImage.gif" 
photo = PhotoImage(file = imgPath) 
label = Label(image = photo) 
label.image = photo # keep a reference! 
label.grid(row = 3, column = 1, padx = 5, pady = 5) 

और

#This gives no error but the image doesn't show 
imgPath = "TestImage.gif" 
photo = PhotoImage(imgPath) 
label = Label(image = photo) 
label.image = photo # keep a reference! 
label.grid(row = 3, column = 1, padx = 5, pady = 5) 

छवि एक ही फ़ोल्डर में है सभी कोड के रूप में। छवि दिखाने के तरीके पर कोई सुझाव?

+2

पहले आप उपयोगी जानकारी देने के किया जा रहा है: यह है कि मैं क्या उपयोग किया जाता है । क्या आप निश्चित हैं कि छवि उचित है। Gif? –

+0

यह एक जेपीईजी था जिसे मैंने एक .gif के रूप में सहेजा था (टाइप जीआईएफ फाइल कहता है)। तो मुझे लगता है कि यह ठीक है। – Arktri

+2

नहीं, यह ठीक नहीं है। टिंकर केवल जीआईएफ प्रारूप में फाइलों का समर्थन करता है, इससे कोई फर्क नहीं पड़ता कि नाम क्या है। बस नाम बदलना स्वचालित रूप से इसे एक जीआईएफ नहीं बनाता है। जेपीईजी प्रदर्शित करने के लिए आपको पीआईएल का उपयोग करने की आवश्यकता होगी। –

उत्तर

5

ब्रायन ओकले सही है, छवि इसकी सामग्री के संदर्भ में एक jpg नहीं है, भले ही आपके फाइल सिस्टम को लगता है कि यह एक gif है।

मेरे अंत में मैंने आपके प्रोग्राम के साथ एक जेपीजी खोलने की कोशिश की और एक ही त्रुटि मिली 'TclError: छवि फ़ाइल में डेटा को पहचान नहीं सका "hello.jpg"।

तो आप यह कर सकते हैं: अपनी छवि को mspaint के साथ खोलें, फिर फ़ाइल> सेव करें और "सेव टाइप टाइप" ड्रॉपडाउन से जाएं, जीआईएफ चुनें। फिर कोड काम करना चाहिए।

from Tkinter import * 

root = Tk() 

imgPath = r"hello.gif" 
photo = PhotoImage(file = imgPath) 
label = Label(image = photo) 
label.image = photo # keep a reference! 
label.grid(row = 3, column = 1, padx = 5, pady = 5) 

root.mainloop() 

(btw, अगर मैं photo = PhotoImage(imgPath) के ऊपर लाइन 7 बदल तो आप की तरह, कोई छवि प्रकट होता है तो यह photo = PhotoImage(file = imgPath) के रूप में छोड़ दें।)

संबंधित मुद्दे