用Python打开图像时出现错误
我正在用Python打开一张图片;我写了以下代码:
from PIL import Image
im=Image.open("IMG_1930.jpg")
im.show()
但是,Windows照片查看器打开了,却显示了以下信息,而不是照片:
“Windows照片查看器无法打开这张图片,因为这张图片可能被删除了,或者它不在一个可以访问的位置。”
2 个回答
0
我也遇到过这个问题。你可以看看这个帖子,它帮我解决了我的问题:PIL的show()在Windows 7上不工作
祝你好运,解决这个问题。
3
PIL中的show
方法就像是一个简单的查看图片的方式。它内置了一个固定的图片查看器应用程序,会把你的图片数据写到一个临时文件里,然后再调用这个外部应用程序来打开它。
这里可能出现的问题是,你可能在Windows系统上遇到了权限访问的问题,导致查看器无法打开Python的临时目录中的文件,或者是Windows的路径设置有问题。甚至可能是PIL本身的一个bug,导致PIL生成的临时路径无法被图片查看器使用。
如果你在一个窗口应用程序中使用show
,建议使用你所用工具包提供的查看图片的方法来显示图片。如果是一个简单的应用程序,可以创建一个Tkinter窗口,把图片放进去,而不是使用show
。
import sys
import Tkinter
from PIL import Image, ImageTk
window = Tkinter.Tk()
img = Image.open("bla.png")
img.load()
photoimg = ImageTk.PhotoImage(img)
container = Tkinter.Label(window, image=photoimg)
container.pack()
Tkinter.mainloop()
(Linux用户注意:某些Linux发行版需要单独安装Tkinter支持才能使用PIL/PILLOW。例如,在Fedora上,需要安装python-pillow-tk
这个软件包。)