如何在Python Tkinter画布上放置裁剪过的图像

2 投票
1 回答
6740 浏览
提问于 2025-04-17 12:19

我看到很多类似的问题,但没有找到完全适合我这个情况的解决方案:我想要做以下几件事:

  1. 从电脑里加载一张图片文件
  2. 裁剪这张图片(可以懒裁剪,也可以认真裁剪)
  3. 把它放到一个TKinter的画布上

哦,如果第一步不需要是gif格式的文件那就更好了,不过即使必须是gif格式我也会很开心。就这些了……

我可以加载文件,也可以裁剪它(用PIL),还可以把它放到画布上(用TKinter),但我似乎无法把这些步骤结合起来……(所以也许只需要简单地把PIL的内容转到TKinter就可以了?)我当然是TKinter的新手。

1 个回答

5

PIL 里有一个叫 ImageTk 的模块。

from Tkinter import *
from PIL import Image, ImageTk

root = Tk()
canvas = Canvas(root, width=500, height=500)
canvas.pack()

im = Image.open("image.png")
cropped = im.crop((0, 0, 200, 200))
tk_im = ImageTk.PhotoImage(cropped)
canvas.create_image(250, 250, image=tk_im)

root.mainloop()

撰写回答