Показать изображение с помощью Tkinter - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь использовать Tkinter для отображения изображения в Python 2.7.Ниже приведен пример кода, который я пытался использовать, который отображает все изображения в папке (от http://code.activestate.com/recipes/521918-pil-and-tkinter-to-display-images/):

import os, sys
import Tkinter
import Image, ImageTk

def button_click_exit_mainloop (event):
    event.widget.quit() # this will cause mainloop to unblock.

root = Tkinter.Tk()
root.bind("<Button>", button_click_exit_mainloop)
root.geometry('+%d+%d' % (100,100))
dirlist = os.listdir('.')
old_label_image = None
for f in dirlist:
    try:
        image1 = Image.open(f)
        root.geometry('%dx%d' % (image1.size[0],image1.size[1]))
        tkpi = ImageTk.PhotoImage(image1)
        label_image = Tkinter.Label(root, image=tkpi)
        label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1])
        root.title(f)
        if old_label_image is not None:
            old_label_image.destroy()
        old_label_image = label_image
        root.mainloop() # wait until user clicks the window
    except Exception, e:
        # This is used to skip anything not an image.
        # Image.open will generate an exception if it cannot open a file.
        # Warning, this will hide other errors as well.
        pass

Например, крестик (вверху) приведет кследующее отображаемое изображение в окне Tkinter (внизу): enter image description here

Я пробовал другие коды (включая некоторые для отображения в реальном времени моей веб-камеры), все они приводят к одному и тому же результату: IМожно увидеть изображение, оно имеет правильный размер, но каждый столбец имеет постоянное значение в пикселях (один из соответствующего столбца первой строки исходного изображения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...