Откройте файл изображения и отобразите его в новом окне - PullRequest
0 голосов
/ 30 мая 2019

У меня есть кнопка в моем графическом интерфейсе, и после выбора файла изображения я хочу, чтобы он отображался в новом окне.

Код:

import tkinter as tk
from tkinter import *   
from tkinter import ttk
from tkinter import filedialog
import os
from PIL import Image, ImageTk  # Place this at the end (to avoid any conflicts/errors)

window = tk.Tk()
a = Tk()

def openimgfile():
    currdir = os.getcwd()
    name = filedialog.askopenfile(initialdir = currdir, title = "Select a Image", filetype = ( ("PNG", "*.png"), ("JPEG", "*.jpg;.*jpeg"), ("All files", "*.*") ) )                         

a.title("Pattern Matching")
a.minsize(200,200)
button1 = Button(text="Open file",width = 10,height =10,command=openimgfile).pack()

a.mainloop()

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Чтобы это работало, вам нужно инициализировать это в командной функции:

from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
import os

window = Tk()


def open_img_file():
    filename = filedialog.askopenfilename(initialdir=os.getcwd(
    ), title="Select file", filetypes=(("png images", ".png"), ("all files", "*.*")))
    if not filename:
        return
    # setup new window
    new_window = Toplevel(window)
    # get image
    image = ImageTk.PhotoImage(Image.open(filename))
    # load image
    panel = Label(new_window, image=image)
    panel.image = image
    panel.pack()


window.title("Pattern Matching")
window.minsize(200, 200)
button = Button(text="Open file", width=10, height=10,
                command=open_img_file)
button.pack()

window.mainloop()
0 голосов
/ 30 мая 2019

Используйте это для отображения изображения в tkinter:

Показать изображение:)

 from tkinter import *

 def makeLabel(parent, image):
     # Make label to display the image
     label = Label(parent, image=image)
     label.pack()

 def showImg():
     # Define root window!
     root = Tk()

     # Bring the image to the script!
     img = PhotoImage(file='YOUR_PIC.png')

     # Show image as label
     makeLabel(root, img)

     # Update root (GUI)
     root.mainloop()

 if __name__ == '__main__':
     showImg()

Также вы можете использовать matplotlib:)

Использовать библиотеку

Это круто ^ _ ^

Вы можете отобразить изображение очень просто, используя matplotlib:

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg

img = mpimg.imread('YOUR_PIC.png')
imgplot = plt.imshow(img)

plt.show()

Установить библиотеку

Но установите его перед использованием:)

python2:

    pip2 install matplotlib

python3:

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