Seite 1 von 1
Tkinter prob. mit PhotoImage
Verfasst: Mittwoch 10. August 2011, 19:44
von jtschoch
Hi Leute und Pythoner,
ich habe ein Prob. mit PhotoImage wenn ich das so:
Code: Alles auswählen
photo = Tkinter.PhotoImage(file="search.png")
Search = Button(image=photo, command = seachweb)
Search.photo = photo
Search.place(relx=0.235, rely=0.75, relwidth=0.14, relheight=0.2)
schreibe,
bekomme ich eine Fehlermeldung.
Die lautet so:
Code: Alles auswählen
Traceback (most recent call last):
File "J:\JT_proj\python\Webseach\pywwwseachdesk.py", line 79, in <module>
photo = Tkinter.PhotoImage(file="search.png")
File "C:\Python27\lib\lib-tk\Tkinter.py", line 3244, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 3200, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: couldn't recognize data in image file "search.png"
[/b]
jtschoch hat geschrieben:
Ich weiß nicht ob,
dass an der Image liegt, weil die bloß 48x48 groß ist ist eigentlich ein Icon 
aber ich habe es als PNG gemacht.
Re: Tkinter prob. mit PhotoImage
Verfasst: Mittwoch 10. August 2011, 20:26
von wuf
Hi jtschoch
Exception hat geschrieben:TclError: couldn't recognize data in image file "search.png"
PhotoImage kann nur Bilddateien mit der Endung
.gif verdauen. Du musst das
bild.png in eine
bild.gif umwandeln. (z.B. mittels Gimp usw.)
Grüßchen wuf

Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 02:04
von EyDu
Ist ja nicht so, dass der erste Treffer mit Google nach "TclError: couldn't recognize data in image file" das nicht auch gesagt hätte ...

Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 08:42
von wuf
@ EyDu: Stimmt! Unser jtschoch jedoch scheint Google nicht zu lieben.
Gruss wuf

Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 11:21
von lunar
@wuf: Wieso sollte er auch? Klappt doch offensichtlich auch ohne Google…

Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 11:28
von jtschoch
Doch ich hatte in Google gekuckt ich habe es auch in gif -Format aber das auch nicht funktioniert.
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 11:50
von jtschoch
Habe es. die gif datei war beschädigt besser gesagt kein richtiges gif
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 12:19
von Xynon1
Lass mich mal raten, was du gemacht hast:
Code: Alles auswählen
Rechtsklick --> Umbenennen --> aus "search.png" mach "search.gif"
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 13:51
von jtschoch
Nein ich habe das Programm IcoFx für mein Icon verwendet und habe bein abspeichern statt der endung .ico gif hingeschrieben.
Aber ich habe bei gif noch ein anderes Prob. ich erhalte das Bild so:

Das Bild hat ein leicht Tranzperenten Farbverlauf. Wie kann ich das ändern?
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 13:56
von BlackJack
@jtschoch: Das GIF-Format kann nur binäre Transparenz speichern, also entweder ganz durchsichtig oder gar nicht.
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 14:36
von jtschoch
Was kann ich sonst machen?
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 14:54
von Xynon1
Dann brauchst du ein anderes Bildformat, für welches du die PIL benötigst. Was ich dir im übrigen
hier und sicher auch woanders schonmal gesagt hatte.
Re: Tkinter prob. mit PhotoImage
Verfasst: Donnerstag 11. August 2011, 15:30
von jtschoch
danke für die erinnerrung
Re: Tkinter prob. mit PhotoImage
Verfasst: Sonntag 14. August 2011, 13:27
von jtschoch
Ich habe noch ein Prob.
Ich habe das mit PIL hinbekommen.
Ich habe meine Dateien als ICO funktioniert wunderbar aber wenn ich das Programm als EXE mache und
es starten will, kommt eine Fehlermeldung im Logfile:
Code: Alles auswählen
Traceback (most recent call last):
File "pywwwseachdesk.pyw", line 74, in <module>
img = ImageTk.PhotoImage(Image.open(os.getcwd() + '\icons\search1.ico'))
File "PIL\Image.pyc", line 1980, in open
IOError: cannot identify image file
Also das kommt wenn ich die exe Starte und wie kann mann bei PIL data verwenden also die base64 code?
Re: Tkinter prob. mit PhotoImage
Verfasst: Sonntag 14. August 2011, 16:46
von jtschoch
Re: Tkinter prob. mit PhotoImage
Verfasst: Dienstag 16. August 2011, 20:45
von jtschoch
Kann mir bitte jemand Helfen - meine Frage ist folgende:
Code: Alles auswählen
[1]base64_code = """Base64 code """
[2]...
[3]print_tk = PhotoImage(data=base64_code)
[4]lb1 = Label(root, image = print_tk)
[5]lb1.pack()
So geht es ja mit PhotoImage, aber wie kann mann den Code in PIL umsetzen?
Code: Alles auswählen
[1]base64_code = """Base64 code """
[2]...
[3]print_tk = Image.open(data=base64_code)
[4]lb1 = Label(root, image = print_tk)
[5]lb1.pack()
Geht nicht, wie sonst?
Re: Tkinter prob. mit PhotoImage
Verfasst: Dienstag 16. August 2011, 21:48
von wuf
Hi jtschoch
Hier ein Testsnippet:
Code: Alles auswählen
import Tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
pil_image = Image.open('my_image.png')
tk_image = ImageTk.PhotoImage(pil_image)
lb1 = tk.Label(root, image=tk_image)
lb1.pack()
root.mainloop()
Mit Base64 Daten geht es leider nicht.
Gruß wuf
Re: Tkinter prob. mit PhotoImage
Verfasst: Mittwoch 17. August 2011, 08:25
von jtschoch
Aber wie griege ich dann die Fehlermeldung weg?
Bei py2exe kann der es nor im Rootverzeichnis und nicht in Unterordern? ^^2
Re: Tkinter prob. mit PhotoImage
Verfasst: Mittwoch 17. August 2011, 13:33
von wuf
Meinst du diese Fehlermeldung? jtschoch hat geschrieben:Traceback (most recent call last):
File "pywwwseachdesk.pyw", line 74, in <module>
img = ImageTk.PhotoImage(Image.open(os.getcwd() + '\icons\search1.ico'))
File "PIL\Image.pyc", line 1980, in open
IOError: cannot identify image file
Irgendwie bekommt PIL das falsche Futter

oder kann die '.ico'-Datei nicht erkennen (evtl. falscher Pfad?)
Gruß wuf

Re: Tkinter prob. mit PhotoImage
Verfasst: Mittwoch 17. August 2011, 15:17
von jtschoch
Ja,
aber in mein ohne exe (nomal) funktioniert es wunderbar
Dachte ich erst auch dann habe ich os.getcwd() hinzugefügt und vor + '\icons\search1.ico geschrieben.
Es bleibt aber bei der Fehlermeldung!