首页 > 解决方案 > 在 python Tkinter 中调整大小和图像时出错

问题描述

我正在学习 Tkinter,我想调整图像大小,这是我的代码:

from tkinter import *
from PIL import ImageTk, Image

root = Tk()
root.title("Iconos e Imagenes")
root.geometry("500x500+60+70")
root.iconbitmap("logo.ico")

img = Image.open("image.jpg")
img = img.resize((200,248), Image.ANTIALIAS)
new_img = ImageTk.PhotoImage(img)
my_Label = Label(image= img)
my_Label.pack()

button_close = Button(root, text="Close Program", command=root.quit)
button_close.pack()
root.mainloop()

我收到了这个错误:

Traceback (most recent call last):
  File "C:/Users/dvill/PycharmProjects/Programacion/Mi Trabajo/iconos_e_imagenes2.py", line 12, in <module>
    my_Label = Label(image= img)
  File "C:\Users\dvill\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 3143, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Users\dvill\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 2567, in __init__
    self.tk.call(
_tkinter.TclError: image "<PIL.Image.Image image mode=RGB size=200x248 at 0x386F1C0>" doesn't exist

任何帮助,将不胜感激!

标签: pythonpython-3.xtkinter

解决方案


你有img而不是new_img你的标签

尝试这个

from tkinter import *
from PIL import ImageTk, Image

root = Tk()
root.title("Iconos e Imagenes")
root.geometry("500x500+60+70")
root.iconbitmap("logo.ico")

img = Image.open("image.jpg")
resize_img = img.resize((200, 248), Image.ANTIALIAS)
new_img = ImageTk.PhotoImage(resize_img )
my_Label = Label(root, image=new_img)
my_Label.pack()

button_close = Button(root, text="Close Program", command=root.quit)
button_close.pack()
root.mainloop()

推荐阅读