Estoy editando imágenes con la biblioteca PIL. El caso es que no quiero guardar la imagen cada vez en mi HDD para verla en Explorer. ¿Existe un módulo pequeño que simplemente me permite configurar una ventana y mostrar la imagen?
Estoy editando imágenes con la biblioteca PIL. El caso es que no quiero guardar la imagen cada vez en mi HDD para verla en Explorer. ¿Existe un módulo pequeño que simplemente me permite configurar una ventana y mostrar la imagen?
Respuestas:
Del tutorial de PIL :
Una vez que tenga una instancia de la clase Image , puede usar los métodos definidos por esta clase para procesar y manipular la imagen. Por ejemplo, mostremos la imagen que acabamos de cargar:
>>> im.show()
Actualizar:
Hoy en día, el Image.show()
método está documentado formalmente en la bifurcación Pillow de PIL junto con una explicación de cómo se implementa en diferentes sistemas operativos.
im.format = "PNG"
) antes de la im.show()
llamada.
show()
método incorporado de PIL es la versión más simple posible del "script de algún otro programa para mostrarlo". (En sistemas Windows anteriores, terminaría con un montón de ventanas MSPaint). Valía la pena sugerirlo e intentarlo, incluso si no funcionaba. De hecho, podría hacer algo similar, y casi tan simple, por ejemplo, ejecutando explícitamente MSPaint.exe en cada imagen…
show()
problema de PIL .
Probé esto y funciona bien para mí:
from PIL import Image
im = Image.open('image.jpg')
im.show()
Si encuentra que PIL tiene problemas en algunas plataformas, el uso de un visor de imágenes nativo puede ayudar.
img.save("tmp.png") #Save the image to a PNG file called tmp.png.
Para MacOS:
import os
os.system("open tmp.png") #Will open in Preview.
Para la mayoría de los sistemas GNU / Linux con X.Org y un entorno de escritorio:
import os
os.system("xdg-open tmp.png")
import os
os.system("powershell -c tmp.png")
Tal vez pueda usar matplotlib para esto, también puede trazar imágenes normales con él. Si llama a show (), la imagen aparece en una ventana. Mira esto:
Puede mostrar una imagen en su propia ventana utilizando Tkinter, sin depender de los visores de imágenes instalados en su sistema:
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()
Para Python 3, reemplace import Tkinter as tk
con import tkinter as tk
.