【问题标题】:How can I resize an image within Canvas with Tkinter in Python?如何在 Python 中使用 Tkinter 在 Canvas 中调整图像的大小?
【发布时间】:2021-04-09 08:01:51
【问题描述】:

在尝试通过 Tkinter 在画布中创建包含图像的应用时,我在调整图像大小时遇到​​了一些问题。第一个是“from PIL import Image, ImageTk”在 PyCharm IDE 中不起作用,并显示“ModuleNotFoundError: No module named 'PIL'”。第二个对我来说是无法理解的,因为我是编码新手。当我运行我在cmd中提到的python文件时发生了这种情况。 你能帮我理解这个问题以及我能做些什么吗?

代码:

from tkinter import*
import tkinter
from PIL import Image, ImageTk
    
image = Image.open("BG.png")
    image = image.resize((500,500), Image.ANTIALIAS)
    #self.pw.pic = ImageTk.PhotoImage(image)
    
myCanvas = Canvas(root, bg = "white", height=600, width = 600)
myCanvas.place(x=550,y=100)#pack()
myCanvas.create_image(0,0, image=image,anchor="nw")
myCanvas.place(x=550, y=100)

app=Window(root)
root.mainloop()

cmd中显示错误:

  File "tk.py", line 50, in <module>
    myCanvas.create_image(0,0, image=image,anchor="nw")
  File "C:\Users\hahik_zvw4rds\anaconda3\lib\tkinter\__init__.py", line 2785, in create_image
    return self._create('image', args, kw)
  File "C:\Users\hahik_zvw4rds\anaconda3\lib\tkinter\__init__.py", line 2771, in _create
    return self.tk.getint(self.tk.call(
_tkinter.TclError: image "<PIL.Image.Image image mode=RGBA size=500x500 at 0x1A1BB564550>" doesn't exist

【问题讨论】:

  • pip install Pillow in terminal 或者直接去文件->设置->python解释器->点击底部的“+”号然后搜索pillow->安装包

标签: python tkinter canvas


【解决方案1】:

您注释掉的代码是正确的。您需要将 Image 转换为 PhotoImage 以便 tkinter 能够使用它。

from tkinter import*
import tkinter
from PIL import Image, ImageTk
    
image = Image.open("BG.png")
image = image.resize((500,500), Image.ANTIALIAS)
pic = ImageTk.PhotoImage(image)
    
myCanvas = Canvas(root, bg = "white", height=600, width = 600)
myCanvas.place(x=550,y=100)#pack()
myCanvas.create_image(0,0, image=pic, anchor="nw")
myCanvas.place(x=550, y=100)
myCanvas.image=pic

app=Window(root)
root.mainloop()

【讨论】:

    猜你喜欢
    • 2018-01-12
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多