2015-12-22 1 views
1

Я пытаюсь увидеть изображения, созданные в Python Imaging Library. Использование следующего фрагмента возвращается после отображения изображения в отдельном процессе. Есть ли способ показать изображения и блокировать скрипт python, пока я не закрою окно?Как сделать img.show() блокирующий вызов в подушке?

from PIL import Image 
... 
img = Image.open(...) 
img.show() 

Для этого я мог бы использовать графическую библиотеку, такую ​​как Qt. Я не хочу добавлять это просто для просмотра изображения.

+0

, как вы используете этот процесс? –

+0

Я запускаю его как обычный скрипт python. Я хочу, чтобы сценарий блокировался, когда я смотрю на изображение, а затем возобновляю его, как только закрою окно. –

+1

См. Http://stackoverflow.com/questions/8932976/python-imaging-library-show-on-windows –

ответ

1

Подушка явно начинает его Mac и Unix Viewers в фоновом режиме. К счастью, Pillow также предоставляет способ регистрации пользовательских зрителей, чтобы вы могли переопределить это поведение.

feh Я использую лично:

import os 
from PIL ImageShow 


class FehViewer(ImageShow.UnixViewer): 
    def show_file(self, filename, **options): 
     os.system('feh %s' % filename) 
     return 1 

ImageShow.register(FehViewer, order=-1) 

[...] 
1

Простое окно пользовательского интерфейса с помощью тка могут достичь этого:

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 
+0

Это будет нормально работать, но мне нужно написать довольно много GUI-кода в моем скрипте python. –