使用PIL导入png图像时出现问题

时间:2017-04-21 11:55:18

标签: python image png

我想导入一个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()

1 个答案:

答案 0 :(得分:0)

您正在尝试从 tkinters Image类创建图像,但它不支持.png图像。

来自documentation

  

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)