Nie mogę sprawić, że mój obraz PIL będzie działał na płótnie. Kod:Jak otworzyć obraz PIL w Tkinter na płótnie
from Tkinter import*
import Image, ImageTk
root = Tk()
root.geometry('1000x1000')
canvas = Canvas(root,width=999,height=999)
canvas.pack()
image = ImageTk.PhotoImage("ball.gif")
imagesprite = canvas.create_image(400,400,image=image)
root.mainloop()
Błąd:
Traceback (most recent call last):
File "C:/Users/Mark Malkin/Desktop/3d Graphics Testing/afdds.py", line 7, in <module>
image = ImageTk.PhotoImage("ball.gif")
File "C:\Python27\lib\site-packages\PIL\ImageTk.py", line 109, in __init__
mode = Image.getmodebase(mode)
File "C:\Python27\lib\site-packages\PIL\Image.py", line 245, in getmodebase
return ImageMode.getmode(mode).basemode
File "C:\Python27\lib\site-packages\PIL\ImageMode.py", line 50, in getmode
return _modes[mode]
KeyError: 'ball.gif'
muszę używać PIL obrazy nie PhotoImages bo chcę zmienić rozmiar grafiki. Proszę nie sugerować przejścia na Pygame, ponieważ chcę używać Tkintera.
Jestem zdezorientowany - mówisz, że nie chcesz używać 'PhotoImage's, ale twój kod używa' PhotoImage'. Czy masz na myśli, że chcesz użyć 'ImageTk.PhotoImage' zamiast' Tkinter.PhotoImage'? – Brionius
Czy próbowałeś czytać dokumenty dla 'PhotoImage'? Zajmuje obiekt obrazu lub tryb i rozmiar. Ty też tego nie przekazujesz; przekazujesz mu nazwę pliku. ('KeyError' na' return _modes [mode] 'sprawia, że oczywiste jest, że stara się traktować nazwę pliku jako tryb ... ale nie ma znaczenia, który z nich próbował, to by się nie powiodło.) – abarnert