2017-05-09 205 views
1

嗨,我在我的代码中的python新手在那里有一个动画的GIF,只要我运行代码播放。 gif图像在Adobe打开时实际上是透明的,但问题在于当我运行代码时.GIF中包含的颜色灰色的框架。我想删除灰色,以便唯一可以看到的是我唯一的gif动画Tkinter背景不显示透明

这是我的代码:

# mimic an animated GIF displaying a series of GIFs 
# an animated GIF was used to create the series of GIFs 
# with a common GIF animator utility 

import time 
from Tkinter import * 

root = Tk() 

imagelist = ["dog001.gif","dog002.gif","dog003.gif"] 

# extract width and height info 
photo = PhotoImage(file=imagelist[0]) 
width = photo.width() 
height = photo.height() 
canvas = Canvas(width=width, height=height) 
canvas.create_line(0,240,640,240, fill='blue') 
canvas.pack() 

# create a list of image objects 
giflist = [] 
for imagefile in imagelist: 
    photo = PhotoImage(file=imagefile) 
    giflist.append(photo) 

# loop through the gif image objects for a while 
for k in range(0, 10): 
    for gif in giflist: 
     canvas.delete(ALL) 
     canvas.create_image(width/2.0, height/2.0, image=gif) 
     canvas.update() 
     time.sleep(0.1) 

root.mainloop()[![enter image description here][1]][1] 

dog001.gif

dog002.gif

dog003.gif

回答

3

here所述,使Tkinter窗口透明是可能的,但取决于您的操作系统。

如果你是在Windows上,只需添加以下行创建root后:

root = Tk() 
# Hide the root window drag bar and close button 
root.overrideredirect(True) 
# Make the root window always on top 
root.wm_attributes("-topmost", True) 
# Define a transparent color 
root.wm_attributes("-transparentcolor", '#eeefff') 

然后设置你的画布的背景颜色与上面定义的透明色:

canvas = Canvas(width=width, height=height, bg='#eeefff', highlightthickness=0) 

screenshot