Как отобразить изображение в окне Tkinter? - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь создать графический интерфейс Tkinter для генератора изображений, в котором после нажатия пользователем кнопки «Создать изображение» в окне должно отображаться сообщение «diff-overlay.jpg».Обратите внимание, что этот файл находится в том же каталоге.

Я создал метод (команду) 'generate' для отображения изображения в окне.Но кнопка «Создать изображение» не отображает изображение (diff-overlay.jpg). Может ли кто-нибудь помочь мне, где я ошибаюсь в этом?Спасибо!

import tkinter as tk

import numpy as np


from PIL import ImageTk,Image  #for image in tk

class HeatMap(tk.Tk):
    def __init__(self, parent=0):
        self.mainWindow = Frame(parent)
        self.fTop = Frame(self.mainWindow)
        self.fTop.pack(fill="both",expand =True)


        self.button = Button(self.fTop, text='Generate Image',command=self.generate)
        self.button.pack(side="right")

        self.mainWindow.pack(fill="both")

    #this should display the image on the root window
    def generate(self):
        image = Image.open('diff-overlay.jpg')
        photo = ImageTk.PhotoImage(image)
        w1 = tk.Label(root, image=photo).pack(side="right",expand=True)



root = Tk()
root.title("Image Generator")
root.geometry("1200x1200")
app=HeatMap(root)

root.mainloop()

.

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Я смог решить ее, сохранив изображение объекта.

self.iconPath = 'diff-overlay.jpg'
self.icon = ImageTk.PhotoImage(Image.open(self.iconPath))
self.icon_size = Label(root)
self.icon_size.image = self.icon  
self.icon_size.configure(image=self.icon)
self.icon_size.pack(side=LEFT,expand=True)
0 голосов
/ 04 июня 2018

Вот как я это делаю:

def iniImage():
    img = Image.open("image.png")
    img = img.resize((300,200), Image.ANTIALIAS)
    img = ImageTk.PhotoImage(img)
    panel = Label(window, image=img)
    panel.image = img
    panel.place(relheight=.095,relwidth=0.25,relx=0.7,rely=0.03)

И чтобы иметь возможность использовать изображение .jpg, я думаю, вам придется использовать что-то вроде:

path = "image.jpg"

#Creates a Tkinter-compatible photo image, which can be used everywhere Tkinter expects an image object.
img = ImageTk.PhotoImage(Image.open(path))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...