Python 使用PIL导入png图像时遇到问题

Python 使用PIL导入png图像时遇到问题,python,image,png,Python,Image,Png,我想导入png图像,但无法以正确的方式将imagetype写入图像函数的参数。我试过写“png”,“png”,imgtype=“png”,但它不起作用。有人知道如何正确地写这个吗。我正在使用下面的代码。顺便说一句,我正在使用OSX from Tkinter import * import PIL root = Tk() img = Image("this is where i'm supppsed to write imgtype", file="image.png") panel = Can

我想导入png图像,但无法以正确的方式将imagetype写入图像函数的参数。我试过写“png”,“png”,imgtype=“png”,但它不起作用。有人知道如何正确地写这个吗。我正在使用下面的代码。顺便说一句,我正在使用OSX

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()

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

从:

PhotoImage类可以从以下文件中读取GIF和PGM/PPM图像:

photo = PhotoImage(file="image.gif")
如果您需要使用其他文件格式,可以使用Python映像 库(PIL)包含的类可以让您在超过30分钟的时间内加载图像 格式化,并将其转换为Tkinter兼容的图像对象:

from PIL import Image, ImageTk

image = Image.open("lenna.jpg")
photo = ImageTk.PhotoImage(image)
通过从Tkinter导入执行
*
,您正在将所有模块从
Tkinter
包加载到全局命名空间中,因此在您的示例中,
Image
实际上是
Tkinter.Image

要解决您的问题,请尝试:

pil_img = PIL.Image.open("image.png")
img = PIL.ImageTk.PhotoImage(pil_img)

谢谢,成功了。然而,现在我遇到了一个新问题。。它说没有安装成像C模块。我在effbot.org上找到了这篇文章,这可能会有帮助: