的光象類可以從文件中讀取GIF和PGM/PPM圖片:
photo = PhotoImage(file="image.gif")
photo = PhotoImage(file="lenna.pgm")
PhotoImage還可以從字符串中讀取base64編碼的GIF文件。您可以使用此嵌入在Python源代碼的圖像(使用功能的base64模塊中的二進制數據轉換成base64編碼字符串):
photo = """
R0lGODdhEAAQAIcAAAAAAAEBAQICAgMDAwQEBAUFBQY GBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O
Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZ GRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh
...
AfjHtq1bAP/i/gPwry4AAP/yAtj77x+Af4ABAwDwrzAAAP8S
A /j3DwCAfwAA/JsM4J/lfwD+/QMA
4B8AAP9Ci/4HoLTpfwD+qV4NoHVAADs=
"""
photo = PhotoImage(data=photo)
如果您需要與其他格式的文件工作,Python圖像庫(PIL)包含的類,讓您加載超過30格式的圖像,並將它們轉換成Tkinter的兼容圖像對象:
from PIL import Image, ImageTk
image = Image.open("lenna.jpg")
photo = ImageTk.PhotoImage(image)
可以使用PhotoImage實例無處不在Tkinter接受一個圖像對象。舉個例子:
label = Label(image=photo)
label.image = photo # keep a reference!
label.pack()
你必須保持你的Python程序到圖像對象的引用,或者通過將其存儲在一個全局變量,或將其連接到另一個對象。
嘗試運行:
import Tkinter as tk
root = tk.Tk()
root.title("display a website image")
photo = tk.PhotoImage(file=
r "C:\Some\Local\location\smile.ppm")
cv = tk.Canvas()
cv.pack(side='top', fill='both', expand='yes')
cv.create_image(10, 10, image=photo, anchor='nw')
root.mainloop()
如果這不起作用嘗試加入一個參考