我无法将PIL图像转换为Tkinter图像,这是我的课程:
class GameText():
def __init__(self, parent, xPos, yPos, text, tag="default"):
global drawTex
self.parent = parent
self.xPos = xPos
self.yPos = yPos
self.text = str(text)
self.tag = tag
image = Image.new("RGBA", (400, 400), None)
draw = ImageDraw.Draw(image)
draw.text((0, 0), self.text, font=font, fill="white")
del draw
drawTex = ImageTk.PhotoImage(image)
self.image = self.parent.create_image(self.xPos, self.yPos, image=drawTex, tag=self.tag)
如果drawTex不是全局的,那么根本不显示任何图像,即使它只显示了一个图像,如果我要创建这两个对象,只会显示最后一个。
self.test1 = GameText(self, 300, 300, "ab")
self.test2 = GameText(self, 300, 300, "hi")
为什么drawTex必须是全局的,为什么只显示最后一个图像?
答案 0 :(得分:1)
我自己解决了这个问题,但我不知道为什么将self.
添加到drawTex
会使其按预期工作。