我正在使用tkinter,我有一个“ sprite sheet”,我想将其切成多个图像。我尝试了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不为空,也不为空。

最佳答案

这是您的代码,进行了一些更改。请注意,顶部是对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()

09-11 20:00
查看更多