Отображение изображения из консоли в Python - PullRequest
28 голосов
/ 12 сентября 2009

Какой самый простой способ показать изображение .jpg или .gif с консоли Python?

У меня есть консольная программа Python, которая проверяет набор данных, который содержит ссылки на изображения, хранящиеся локально. Как мне написать скрипт, чтобы он отображал изображения всплывающих графических окон?

Ответы [ 10 ]

49 голосов
/ 12 сентября 2009

Использование потрясающей Подушки Библиотека:

>>> from PIL import Image                                                                                
>>> img = Image.open('test.png')
>>> img.show() 

Откроется изображение в программе просмотра изображений по умолчанию.

8 голосов
/ 12 декабря 2012

В Xterm-совместимых терминалах вы можете отображать изображение непосредственно в терминале. См. мой ответ на "Изображение PPM для ASCII art in Python"

ImageMagick's

7 голосов
/ 30 мая 2016

В новом окне с помощью Pillow / PIL

Установка Подушка (или ПИЛ), например ::

$ pip install pillow

Теперь вы можете

from PIL import Image
with Image.open('path/to/file.jpg') as img:
    img.show()

Использование собственных приложений

Другие распространенные альтернативы включают запуск xdg-open или запуск браузера с путем к изображению:

import webbrowser
webbrowser.open('path/to/file.jpg')

Встроенная консоль Linux

Если вы действительно хотите отобразить изображение встроенным в консоли, а не в новом окне, вы можете сделать это, но только в консоли Linux , используя fbi см. спросите Ubuntu или используйте ASCII-art, например CACA .

6 голосов
/ 12 сентября 2009

Поскольку вы, вероятно, используете Windows (просматривая свои теги), это будет самый простой способ открыть и показать файл изображения из консоли без установки дополнительных компонентов, например PIL.

import os
os.system('start pic.png')
6 голосов
/ 12 сентября 2009

Или просто выполнить изображение через оболочку, как в

import subprocess
subprocess.call([ fname ], shell=True)

и любая программа, установленная для обработки изображений, будет запущена.

6 голосов
/ 12 сентября 2009

Почему бы просто не отобразить его в веб-браузере пользователя?

5 голосов
/ 12 сентября 2009

Вы не можете отображать изображения в окне консоли. Вам нужен графический инструментарий, такой как Tkinter, PyGTK, PyQt, PyKDE, wxPython, PyObjC или PyFLTK. Существует множество обучающих программ по созданию двух окон и загрузке изображений в iun python.

2 голосов
/ 22 ноября 2017

Если вы хотите показать его в новом окне, вы можете использовать библиотеку 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()

Это модифицированный пример, который можно найти в Интернете.

2 голосов
/ 06 февраля 2017

Я сделал простой инструмент, который будет отображать изображение с именем файла или объектом изображения или url .
Это сырой, но это будет делать в спешке.

Установка:

 $ pip install simple-imshow

Использование:

from simshow import simshow
simshow('some_local_file.jpg')  # display from local file
simshow('http://mathandy.com/escher_sphere.png')  # display from url
0 голосов
/ 25 апреля 2019

Вы также можете использовать модуль Python Ipython, который помимо отображения изображения в консоли Spyder может вставлять изображения в блокнот Jupyter. В Spyder изображение будет отображаться в полном размере, а не в масштабе, соответствующем консоли.

from IPython.display import Image, display
display(Image(filename="mypic.png"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...