Ich bearbeite Bilder mit der PIL-Bibliothek. Der Punkt ist, dass ich das Bild nicht jedes Mal auf meiner Festplatte speichern möchte, um es im Explorer anzuzeigen. Gibt es ein kleines Modul, mit dem ich einfach ein Fenster einrichten und das Bild anzeigen kann?
python
image
python-imaging-library
Bartlomiej Lewandowski
quelle
quelle
Antworten:
Aus dem PIL-Tutorial :
Aktualisieren:
Heutzutage ist die
Image.show()
Methode in der Pillow-Gabel von PIL formal dokumentiert und erklärt, wie sie auf verschiedenen Betriebssystemen implementiert ist.quelle
im.format = "PNG"
vor demim.show()
Aufruf explizit auf .png (dh ) zu setzen .show()
Methode ist die einfachste Version des "Skripts eines anderen Programms, um es anzuzeigen". (Auf früheren Windows-Systemen hatten Sie eine ganze Reihe von MSPaint-Fenstern.) Es hat sich gelohnt, Vorschläge zu machen und es zu versuchen, auch wenn es nicht funktioniert hat. Sie könnten tatsächlich etwas Ähnliches und fast genauso Einfaches tun, indem Sie beispielsweise MSPaint.exe explizit für jedes Bild starten…show()
Problem zu beheben .Ich habe das getestet und es funktioniert gut für mich:
from PIL import Image im = Image.open('image.jpg') im.show()
quelle
Wenn Sie feststellen, dass PIL auf einigen Plattformen Probleme hat, kann die Verwendung eines nativen Bildbetrachters hilfreich sein.
img.save("tmp.png") #Save the image to a PNG file called tmp.png.
Für MacOS:
import os os.system("open tmp.png") #Will open in Preview.
Für die meisten GNU / Linux-Systeme mit X.Org und einer Desktop-Umgebung:
import os os.system("xdg-open tmp.png")
Für Windows:
import os os.system("powershell -c tmp.png")
quelle
Vielleicht können Sie dafür matplotlib verwenden, Sie können damit auch normale Bilder zeichnen. Wenn Sie show () aufrufen, wird das Bild in einem Fenster angezeigt. Schau dir das an:
http://matplotlib.org/users/image_tutorial.html
quelle
Sie können mit Tkinter ein Bild in Ihrem eigenen Fenster anzeigen, ohne abhängig von den auf Ihrem System installierten Bildbetrachtern:
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()
Für Python 3, ersetzen
import Tkinter as tk
mitimport tkinter as tk
.quelle