Tkinter 图像更新时闪烁

问题描述 投票:0回答:1

我目前正在 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)

这与我发现的教程非常相似,但效果更差。我还发现了这个已经被问过的问题,但我似乎无法将其应用到我的代码中,因为他们的代码更加抽象并且设置不同。

python tkinter flicker
1个回答
0
投票

@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)
© www.soinside.com 2019 - 2024. All rights reserved.