web-dev-qa-db-fra.com

Comment afficher des images PIL sur l'écran?

Je suis en train de retoucher des images avec la bibliothèque PIL. Le fait est que je ne veux pas enregistrer l'image à chaque fois sur mon disque dur pour la visualiser dans l'explorateur. Existe-t-il un petit module qui me permet simplement de configurer une fenêtre et d’afficher l’image?

50

Du tutoriel PIL :

Une fois que vous avez une instance de la classe Image , vous pouvez utiliser les méthodes définies par cette classe pour traiter et manipuler l'image. Par exemple, affichons l'image que nous venons de charger:

>>> im.show()

72
martineau

J'ai testé cela et cela fonctionne bien pour moi:

from PIL import Image
im = Image.open('image.jpg')
im.show()
7
Harvey

Vous pouvez peut-être utiliser matplotlib pour cela, vous pouvez également tracer des images normales avec elle. Si vous appelez show (), l'image apparaît dans une fenêtre. Regarde ça:

http://matplotlib.org/users/image_tutorial.html

7
Puckl

Si vous constatez que PIL a des problèmes sur certaines plates-formes, l'utilisation d'un visualiseur d'images natif peut être utile.

img.save("tmp.png") #Save the image to a PNG file called tmp.png.

Pour MacOS:

import os
os.system("open tmp.png") #Will open in Preview.

Pour la plupart des systèmes GNU/Linux avec X.Org et un environnement de bureau:

import os
os.system("xdg-open tmp.png")

Pour Windows:

import os
os.system("powershell -c tmp.png")
5
Feather Feet

Vous pouvez afficher une image dans votre propre fenêtre à l’aide de Tkinter, en fonction des visualiseurs d’images installés sur votre système:

import Tkinter as tk
from PIL import Image, ImageTk  # Place this at the end (to avoid any conflicts/errors)

window = tk.Tk()
#window.geometry("500x500") # (optional)    
imagefile = {path_to_your_image_file}
img = ImageTk.PhotoImage(Image.open(imagefile))
lbl = tk.Label(window, image = img).pack()
window.mainloop()

Pour Python 3, remplacez import Tkinter as tk avec import tkinter as tk.

2
Apostolos