我试图查看由Python Imaging Library生成的图像。在单独的进程中显示图像后,使用以下代码段返回。有没有办法显示图像并让python脚本阻塞直到我关闭窗口?
from PIL import Image
...
img = Image.open(...)
img.show()
我可以使用像Qt这样的GUI库来实现这一目标。我不想添加它只是为了查看图像。
答案 0 :(得分:1)
使用tk的简单UI窗口可以实现此目的:
from PIL import Image, ImageTk
from tkinter import Tk, Label, BOTH
from tkinter.ttk import Frame, Style
class Example(Frame, object):
def __init__(self, parent):
Frame.__init__(self, parent)
self.pack(fill=BOTH, expand=1)
label1 = Label(self)
label1.photo= ImageTk.PhotoImage(Image.open(r"myImage"))
label1.config(image=label1.photo)
label1.pack(fill=BOTH, expand=1)
parent.mainloop()
Example(Tk())
注意:代码在python 3中,对于python 2,导入会略有不同:
from Tkinter import Tk, Label, BOTH
from ttk import Frame, Style
答案 1 :(得分:1)
Pillow在后台显式启动了Mac和Unix查看器。幸运的是,Pillow还提供了一种注册自定义查看器的方法,以便您可以覆盖此行为。
我个人使用<navbar [pageTitle]="Home Page" ></navbar>
<ion-content padding>
welcome
</ion-content>
:
feh
答案 2 :(得分:0)
实现阻塞调用的一种间接方法是在matplotlib中显示一个PIL图像:
import matplotlib.pyplot as plt
import numpy as np
import PIL
img = PIL.Image.open("image.jpg")
plt.imshow(np.asarray(img))
plt.show() # Default is a blocking call