ARTICLE · 1114092
源码篇:国庆主题头像
源码篇:国庆主题头像在这里橙子先祝大家国庆节快乐呀!!! 想必现在宝子们已经处于放假状态了,橙子也特地为大家准备了一个符合我们国庆主题相关的代码程序(完整代码橙子直接丢文章里面了,宝子们可以直接复制,直接就可以使用了捏) 开始之前,先向宝子们求个关注,橙子会持续更新python相关的知识和源码,点个关注不迷路呀!!!
废话不多说,我们先来看下具体的代码运行后的效果是怎么样的? 
(你自己的头像) 
(头像国庆主题版本) 大家也是能清楚的看出来这两个头像之间的区别,将我们的红旗与我们自己的头像进行融合,制作出符合国庆节主题相关的头像。 完整代码如下(公众号放置的代码,复制到pycharm中可能会出现缩进问题,宝子们记得按照里面的缩进进行嗷) 
(红旗.png) 
(头像.png) 注意:头像.png是我自己找的头像,需要换成你自己的头像,然后运行代码嗷,记得代码第四行的头像命名更改一下嗷


from PIL import Image# 读取图片,并将五星红旗图片尺寸重置为头像图片的尺寸s_avatar = Image.open('头像.png').convert("RGBA")s_banner = Image.open('国旗.png').convert("RGBA").resize(s_avatar.size)# 将五星红旗图片设置透明渐变w, h = s_banner.size# 计算对角线的总距离,用于计算渐变步长diagonal = w + h - 2 # 减2是因为坐标从0开始,最大坐标是w-1和h-1for i in range(w):for j in range(h):if diagonal == 0:alpha = 255 # 防止极小图片除以0else:# 依然设定在对角线长度的 90% 处完成渐变step = 255 / (diagonal * 0.9)# 核心改变:使用 (i + j) 作为距离因子calc_alpha = 255 - ((i + j) * step)alpha = int(calc_alpha) if calc_alpha > 0 else 0s_banner.putpixel((i, j), s_banner.getpixel((i, j))[:-1] + (alpha,))# 将五星红旗图片粘贴到头像图片并保存s_avatar.paste(s_banner, (0,0), s_banner)s_avatar.save('国庆半透明渐变头像.png')

