【问题标题】:OPEN IMAGE USING PYTHON showing error使用 Python 打开图像显示错误
【发布时间】:2014-07-03 04:07:55
【问题描述】:

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

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

但是 windows 照片查看器打开但显示以下消息而不是照片:

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

【问题讨论】:

  • 尝试提供图片的完整路径。
  • 要么按照@jsbueno 所说的去做,要么将图像转换为 gif

标签: python python-imaging-library


【解决方案1】:

PIL 中的show 方法是一种查看图像的穷人方式 - 它有一个硬编码的图像查看器应用程序,并在将其作为外部应用程序调用之前将您的图像数据写入一个临时文件。

那里发生的情况是,您要么遇到 Windows 不均匀的访问权限策略问题,并且查看器无法在 Python 的临时目录中打开文件,要么是 Window 有问题的路径规范存在问题 - 甚至可能是 PIL 中的一个错误,导致 PIL 生成的临时路径无法被图像查看器使用。

如果您在窗口应用程序中使用show,请使用您的 takeit 查看图像的方式来显示它 - 否则,如果它是一个更简单的应用程序,请构建一个 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 包)

【讨论】:

    【解决方案2】:

    我也有这个问题。看看这篇文章它解决了我的问题:PIL image show() doesn't work on windows 7

    祝你好运。

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2013-01-21
      • 2021-12-05
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2011-12-23
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多