Photoimage 显示图片
如果要在 tkinter 中显示图片,必须搭配 Pillow 函数库的 ImageTk.Photoimage 建立图片对象,再透过 Label 或 Canvas 显示图片,这篇教学会介绍如何在 tkinter 中显示图片。
快速导览:
因为 Google Colab 不支援 tkinter,所以请使用本机环境 ( 参考:使用 Python 虚拟环境 ) 或使用 Anaconda Jupyter 进行实作 ( 参考:使用 Anaconda )。
搭配 Label 显示图片
tkinter 本身具有 Photoimage 方法,但该方法支援度不高又容易失效 ( 仅支援特定颜色 gif 文件 ),因此必须搭配 Pillow 函数库的 ImageTk.Photoimage 建立 tk 图片对象,建立 tk 图片对象后,将 Label 的 image 参数指向该对象,执行后视窗里就会出现图片。
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
img = Image.open('mona.jpg') # 開啟圖片
tk_img = ImageTk.PhotoImage(img) # 轉換為 tk 圖片物件
label = tk.Label(root, image=tk_img, width=200, height=200) # 在 Lable 中放入圖片
label.pack()
root.mainloop()
使用 Label 放入图片默认会摆在正中间,设定 anchor 参数就能调整位置 ( 参考“Label 标签参数设定” )。
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
img = Image.open('mona.jpg')
tk_img = ImageTk.PhotoImage(img)
label = tk.Label(root, image=tk_img, width=200, height=200, anchor='nw') # 設定 anchor
label.pack()
root.mainloop()
使用 Canvas 显示图片
如果是使用 tkinter 的 Canvas 元件,可以在 Pillow 的 ImageTk.Photoimage 建立 tk 图片对象后,透过 create_image 方法建立对象。
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('400x400')
img = Image.open('mona.jpg')
tk_img = ImageTk.PhotoImage(img)
canvas = tk.Canvas(root, width=400, height=400)
canvas.create_image(0, 0, anchor='nw', image=tk_img) # 在 Canvas 中放入圖片
canvas.pack()
root.mainloop()
微信扫码关注
抖音扫码关注