我目前正在 Tkinter 中处理图像动画,我发现当我快速更新图像(以创建缩放动画)时,它会闪烁并且看起来不稳定。有没有更好的方法来动画缩放而不闪烁?
截断代码:
placeholderImg = Image.open("./assets/placeholder.png")
def actionTest():
global img
for i in range(20):
resized = placeholderImg.resize((100+i*2, 100+i*2))
img = ImageTk.PhotoImage(resized)
canvas.create_image(480, 270, image=img)
img = ImageTk.PhotoImage(placeholderImg)
canvas.create_image(480, 270, image=img)
这与我发现的教程非常相似,但效果更差。我还发现了这个已经被问过的问题,但我似乎无法将其应用到我的代码中,因为他们的代码更加抽象并且设置不同。
@jasonharper 的评论是正确的。以下是针对其他遇到此问题的人的更新功能:
def actionTest():
global img
for i in range(20):
resized = placeholderImg.resize((100+i*2, 100+i*2))
new = ImageTk.PhotoImage(resized)
canvas.itemconfigure(setImg, image=new)
img = new
img = ImageTk.PhotoImage(placeholderImg)
setImg = canvas.create_image(480, 270, image=img)