【问题标题】:Cropping an image in tkinter在 tkinter 中裁剪图像
【发布时间】:2019-02-21 19:24:46
【问题描述】:

我正在使用 tkinter,我有一个“精灵表”,我想将它剪切成多个图像。我试过 PIL:

img = Image.open("test.png").convert("RGBA")
img2 = img.crop([300,300,350,350])
image = ImageTk.PhotoImage(img2)
win = tk.Tk()
label = tk.Label(win, image = image)
label.pack()

但在我的窗口上,只有一个空的白色矩形,我不明白为什么。此外,我尝试img2.show() 只是为了确保 img2 不是空的,它也不是。

【问题讨论】:

  • 如果在制作 PhotoImage 之前启动 Tkinter 会发生什么?也就是说,将win = 行放在image = 行之前。
  • 哇,这真的很奇怪,但我是对的,谢谢!

标签: python tkinter python-imaging-library


【解决方案1】:

这是您的代码,有一些更改。注意顶部的 Tk() 调用和底部的 mainloop() 调用。另一个修改是它获取图像的宽度和高度,然后从四个边中的每一个裁剪 25%,留下图像中间的 50%。

#!/usr/bin/python

from tkinter import *  
from PIL import ImageTk,Image  

root = Tk()

img = Image.open("test.png").convert("RGBA")

w, h = img.size

left = w/4
right = 3*w/4
upper = h/4
lower = 3*h/4

img2 = img.crop([ left, upper, right, lower])
image = ImageTk.PhotoImage(img2)

label = Label(root, image = image)
label.pack()

root.mainloop()

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2015-02-02
    • 2017-05-22
    • 1970-01-01
    • 2011-09-12
    • 2014-11-30
    • 2011-01-01
    • 2011-01-01
    • 2016-12-05
    相关资源
    最近更新 更多