我似乎無法讓我的PIL圖像在畫布上工作。代碼:如何在畫布上打開Tkinter中的PIL圖像
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()
錯誤:
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'
我需要使用PIL圖像不PhotoImages因爲我想調整我的圖片。請不要建議切換到Pygame,因爲我想使用Tkinter。
我很困惑 - 你說你不想使用'PhotoImage's,但你的代碼使用'PhotoImage'。你的意思是你想使用'ImageTk.PhotoImage'而不是'Tkinter.PhotoImage'? – Brionius
你有沒有試過閱讀'PhotoImage'的文檔?它需要一個圖像對象,或者一個模式和一個尺寸。你也沒有通過它;你傳遞一個文件名。 ('return _modes [mode]'上的'KeyError'很明顯它試圖將文件名視爲一種模式...但是嘗試使用哪一個並不重要,它會以任何方式失敗。) – abarnert