我正在尝试使用python打开图像;我写了以下代码:
from PIL import Image
im=Image.open("IMG_1930.jpg")
im.show()
但是Windows照片查看器会打开,但它会显示以下消息而不是照片:
“Windows照片查看器无法打开此图片,因为图片已被删除,或者它不在可访问的位置。”
答案 0 :(得分:2)
PIL中的show
方法是查看图像的不良方式 - 它有一个硬编码的图像查看器应用程序,并将您的图像数据写入临时文件,然后将其作为外部调用应用
正在发生的事情是你遇到了Windows和Windows的问题。不一致的访问权限策略,并且查看者无法在Python的临时目录中打开该文件,或者Window的问题路径规范存在问题 - 它甚至可能是PIL中的错误,渲染由PIL生成的临时paht无法被图像查看器使用。
如果您在窗口应用程序中使用show
,请使用您的查看图像的方式来显示它 - 否则,如果它是一个更简单的应用程序,则构建一个Tkitner窗口并放置其中的图片,而不是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用户:某些发行版需要单独安装Tkinter支持PIL / PILLOW。例如,在Fedora中,必须安装python-pillow-tk
包)
答案 1 :(得分:0)
我也有这个问题。看一下这篇文章就解决了我的问题:PIL image show() doesn't work on windows 7
祝你好运。