1秒后变成半透明tkinter和pillow图形处理

李兴球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()                                # 事件循环
        

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在pillow, python, tkinter分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表回复