无法在python程序中显示图像

2024-04-23 20:54:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始编写代码,并决定从python开始。我想制作一个程序,从文件打开对话框加载一个图像,然后在我的root()中显示该图像。这是可行的,但当我将加载部分放入函数时,它会显示图像应该在的空间,但不会显示图像。我的代码是:

from tkinter import *
from tkinter import filedialog
from shutil import copyfile
from PIL import ImageTk, Image
import numpy as np
import cv2

root = Tk()
#root.withdraw()
topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack(side=BOTTOM)

def odaberiSliku():
    root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
    img = (root.filename)
    copyfile(img,"test.jpg")
    #root.deiconify()
    photo = ImageTk.PhotoImage(Image.open("test.jpg"))
    label = Label(bottomFrame, image=photo)
    label.pack()
    return

button_load = Button(topFrame, text="Odaberi sliku", command=odaberiSliku)
button_load.pack()

root.mainloop()

我有一扇这样的窗户:

My window

谢谢你。你知道吗


Tags: 代码from图像imageimporttkinterrootframe
1条回答
网友
1楼 · 发布于 2024-04-23 20:54:07

由于photo是函数中的局部变量,因此与它相关联的任何对象(在本例中是图像)在返回时都会被销毁。换句话说,函数返回后,就没有图像可显示了。解决方案:使变量成为全局变量。你知道吗

def odaberiSliku():
    global photo
    # Your code follows

相关问题 更多 >