【发布时间】:2021-03-01 06:27:03
【问题描述】:
这个没有函数的代码确实可以在标签 tkinter python 3.8.5 上显示图像。
from tkinter import *
from PIL import Image, ImageTk
import os
import os.path
root = Tk()
root.title("Test_image")
root.geometry("1000x600")
# def display_image():
images_folder = "C:/TextSoundSource/B-V/I-WORD-E-00-B-V-0-renamed"
os.chdir(images_folder)
displaying_img = "022.jpg"
# Open Image
img = Image.open(displaying_img)
# Resize Image
resized = img.resize((300, 200), Image.ANTIALIAS)
resized_img = ImageTk.PhotoImage(resized)
image_display_frame = LabelFrame(root, text="Image", font=(
"times", 15, "bold"), bg="Navyblue", fg="white", bd=5)
image_display_frame.place(x=0, y=0, width=1000, height=300)
img_label = Label(image_display_frame, image=resized_img)
img_label.pack(pady=20)
# display_image()
root.mainloop()
但是当使用下面这样的函数时它不起作用,我如何使用函数获取图像?
from tkinter import *
from PIL import Image, ImageTk
import os
import os.path
# == == == == == == == == == == == ========
# Using function does not work ???? why ???
# == == == == == == == == == == == ========
root = Tk()
root.title("Test_image")
root.geometry("1000x600")
def display_image():
images_folder = "C:/TextSoundSource/B-V/I-WORD-E-00-B-V-0-renamed"
os.chdir(images_folder)
displaying_img = "001.jpg"
# Open Image
img = Image.open(displaying_img)
# Resize Image
resized = img.resize((300, 200), Image.ANTIALIAS)
resized_img = ImageTk.PhotoImage(resized)
image_display_frame = LabelFrame(root, text="Image", font=(
"times", 15, "bold"), bg="Navyblue", fg="white", bd=5)
image_display_frame.place(x=0, y=0, width=1000, height=300)
img_label = Label(image_display_frame, image=resized_img)
img_label.pack(pady=20)
display_image()
root.mainloop()
提前感谢,请告诉我如何使用 tkinter python 中的函数获取图像显示。
【问题讨论】:
-
在函数中添加
global resized_img或仅添加root.anything = resized_img。