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?
python
image
python-imaging-library
Bartlomiej Lewandowski
fuente
fuente
Respuestas:
Del tutorial de PIL :
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.fuente
im.format = "PNG"
) antes de laim.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()
fuente
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")
Para ventanas:
import os os.system("powershell -c tmp.png")
fuente
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:
http://matplotlib.org/users/image_tutorial.html
fuente
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
conimport tkinter as tk
.fuente