我想导入一个png图像但是我无法以正确的方式将imagetype作为Image函数的参数写入。我已经尝试过写作" png"," PNG",imgtype =" png"但它不会工作。有谁知道如何正确写这个。我使用下面的代码。我正在使用OSX btw。
from Tkinter import *
import PIL
root = Tk()
img = Image("this is where i'm supppsed to write imgtype", file="image.png")
panel = Canvas(root)
panel.pack(side = "bottom", fill = "both", expand = "yes")
panel.create_image(image=img)
root.mainloop()
答案 0 :(得分:0)
您正在尝试从 tkinters Image
类创建图像,但它不支持.png
图像。
PhotoImage类可以从文件中读取GIF和PGM / PPM图像:
photo = PhotoImage(file="image.gif")
如果您需要使用其他文件格式,请使用Python Imaging 库(PIL)包含允许您加载超过30个图像的类 格式,并将它们转换为兼容Tkinter的图像对象:
from PIL import Image, ImageTk image = Image.open("lenna.jpg") photo = ImageTk.PhotoImage(image)
通过执行from Tkinter import *
,您将Tkinter
包中的所有模块加载到全局命名空间中,因此您案例中的Image
实际上是Tkinter.Image
。
要解决您的问题,请尝试:
pil_img = PIL.Image.open("image.png")
img = PIL.ImageTk.PhotoImage(pil_img)