在Python中显示来自控制台的图像

Ale*_*lex 31 python image

从Python控制台显示图像.jpg.gif图像的最简单方法是什么?

我有一个Python控制台程序正在检查一个数据集,其中包含本地存储的图像的链接.我应该如何编写脚本以便显示图像弹出图形窗口?

Ste*_*lla 54

使用令人敬畏的枕头库:

>>> from PIL import Image                                                                                
>>> img = Image.open('test.png')
>>> img.show() 
Run Code Online (Sandbox Code Playgroud)

这将在默认图像查看器中打开图像.

  • @Röyal这是因为 PIL.Image.show() 旨在成为一个调试工具。要使用它,您需要分别为 Linux 或 Windows 安装 xz 或 Paint。如果您显示一个图像,将其保持打开状态,然后显示另一个图像,您也会遇到此错误。 (2认同)

Jan*_*sen 8

在Xterm兼容终端中,您可以直接在终端中显示图像.请参阅我对"Python中的PPM图像到ASCII艺术"的回答

ImageMagick在Xterm中的


Wer*_*ght 7

在使用Pillow/PIL的新窗口中

安装枕头(或PIL),例如:

$ pip install pillow
Run Code Online (Sandbox Code Playgroud)

现在你可以

from PIL import Image
with Image.open('path/to/file.jpg') as img:
    img.show()
Run Code Online (Sandbox Code Playgroud)

使用原生应用

其他常见的替代方案包括xdg-open使用图像路径运行或启动浏览器:

import webbrowser
webbrowser.open('path/to/file.jpg')
Run Code Online (Sandbox Code Playgroud)

内联Linux控制台

如果你真的想在控制台中内嵌显示图像而不是新窗口,你可以这样做,但只能在Linux控制台中使用,fbi请参阅询问Ubuntu或者使用像CACA这样的ASCII-art .


ant*_*ony 6

为什么不在用户的网络浏览器中显示它?


Joc*_*zel 6

或者只是通过shell执行图像,如

import subprocess
subprocess.call([ fname ], shell=True)
Run Code Online (Sandbox Code Playgroud)

无论安装什么程序来处理图像都将启动.


Unk*_*own 6

由于您可能正在运行Windows(通过查看您的标签),这将是从控制台打开和显示图像文件的最简单方法,而无需安装像PIL这样的额外内容.

import os
os.system('start pic.png')
Run Code Online (Sandbox Code Playgroud)

  • 在Python 2.4及更高版本中,subprocess优先于os.system. (7认同)

Iva*_*lik 6

如果您想在新窗口中显示它,可以使用 Tkinter + PIL 库,如下所示:

import tkinter as tk
from PIL import ImageTk, Image

def show_imge(path):
    image_window = tk.Tk()
    img = ImageTk.PhotoImage(Image.open(path))
    panel = tk.Label(image_window, image=img)
    panel.pack(side="bottom", fill="both", expand="yes")
    image_window.mainloop()
Run Code Online (Sandbox Code Playgroud)

这是一个经过修改的示例,可以在整个网络上找到。


cod*_*nix 5

您无法在控制台窗口中显示图像.您需要一个图形工具包,如Tkinter,PyGTK,PyQt,PyKDE,wxPython,PyObjC或PyFLTK.有很多教程如何创建siomple窗口和加载图像iun python.