使用PYTHON打开图像显示错误

时间:2014-07-03 04:07:56

标签: python python-imaging-library

我正在尝试使用python打开图像;我写了以下代码:

from PIL import Image
im=Image.open("IMG_1930.jpg")
im.show()

但是Windows照片查看器会打开,但它会显示以下消息而不是照片:

“Windows照片查看器无法打开此图片,因为图片已被删除,或者它不在可访问的位置。”

2 个答案:

答案 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

祝你好运。