Affichage d'une image depuis la console en Python
Quelle est la meilleure façon de montrer une image .jpg
ou .gif
de la console Python?
j'ai un programme de console Python qui vérifie un ensemble de données qui contient des liens vers des images stockées localement. Comment dois-je écrire le script pour qu'il affiche les images pop-up des fenêtres graphiques?
9 réponses
à l'Aide du génial Oreiller de la bibliothèque:
>>> from PIL import Image
>>> img = Image.open('test.png')
>>> img.show()
ceci ouvrira l'image dans votre visualiseur d'image par défaut.
dans les terminaux compatibles Xterm, vous pouvez afficher l'image directement dans le terminal. Voir ma réponse à "PPM image ASCII art en Python"
Pourquoi ne pas l'afficher dans le navigateur web de l'utilisateur?
vous ne pouvez pas afficher des images dans une fenêtre de console. Vous avez besoin d'une boîte à outils graphique comme Tkinter, PyGTK, PyQt, PyKDE, wxPython, PyObjC ou PyFLTK. Il y a beaucoup de tutoriel sur la façon de créer des fenêtres siomple et de charger des images iun python.
Dans une nouvelle fenêtre à l'aide d'Oreiller/PIL
installer oreiller (ou PIL), p.ex.:
$ pip install pillow
Maintenant vous pouvez
from PIL import Image
with Image.open('path/to/file.jpg') as img:
img.show()
à l'Aide des applications natives
D'autres alternatives courantes incluent l'exécution de xdg-open
ou le démarrage du navigateur avec le chemin d'image:
import webbrowser
webbrowser.open('path/to/file.jpg')
Inline console Linux
si vous voulez vraiment montrer le image en ligne dans la console et non comme une nouvelle fenêtre, vous pouvez le faire, mais seulement dans une console Linux en utilisant fbi
voir demandez Ubuntu ou bien utiliser ASCII-art comme CACA .
ou simplement exécuter l'image à travers le shell, comme dans
import subprocess
subprocess.call([ fname ], shell=True)
et tout programme installé pour traiter les images sera lancé.
comme vous utilisez probablement Windows (à partir de la lecture de vos balises), ce serait la meilleure façon d'ouvrir et de montrer un fichier image à partir de la console sans installer des trucs supplémentaires comme PIL.
import os
os.system('start pic.png')
j'ai fait un outil simple qui affichera une image donnée un nom de fichier ou objet d'image ou url .
C'est brut, mais il va faire dans la précipitation.
Installation:
$ pip install simple-imshow
Utilisation:
from simshow import simshow
simshow('some_local_file.jpg') # display from local file
simshow('http://mathandy.com/escher_sphere.png') # display from url
Si vous souhaitez l'afficher dans une nouvelle fenêtre, vous pouvez utiliser Tkinter + PIL bibliothèque, comme suit:
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()
il s'agit d'un exemple modifié qui peut être trouvé partout sur le web.