
李兴球Python tkinter和pillow图像处理1秒后变半透明
"""
1秒后变成半透明.py
"""
__author__ = '李兴球'
__date__ = '2020/10/3'
import time
from tkinter import *
from PIL import Image,ImageTk
def setalpha(rawim,a):
"""
设置图形对象的alpha通道值
"""
r, g, b, alpha = rawim.split() # 分离r,g,b,a通道
alpha = alpha.point(lambda i: i>0 and a) # 把非透明点的alpha值换成a
rawim.putalpha(alpha) # 替换im的alpha通道
return rawim
root = Tk() # 新建窗口
cv = Canvas(root,width=480,height=360,bg='white')# 新建画布
cv.pack() # 放置画布
bg = ImageTk.PhotoImage(file='电影院外面.png') # 背景图
cv.create_image(240,180,image=bg) # 创建背景
im = Image.open("cat.gif") # 打开图像
im = im.convert('RGBA') # 转换成RGBA模式
img = ImageTk.PhotoImage(im) # 包装成能在画布上显示的图
cat= cv.create_image(240,220,image=img) # 创建小猫图
cv.update() # 更新画布显示
time.sleep(1) # 等待1秒钟
im = setalpha(im,128) # 修改im的alpha通道
img = ImageTk.PhotoImage(im) # 包装成能在画布上显示的
cv.itemconfig(cat,image=img) # 重新配置下cat的图像
cv.update() # 更新画布显示
root.mainloop() # 事件循环