一、效果图
这是把微信头像和红旗相结合制作出来的效果图:
如需图片和代码进行练习,可到公众号中发送“国庆头像”即可免费获取
二、实现代码
具体实现代码如下:
代码语言:javascript复制import os
from PIL import Image
os.chdir(r'F:公众号80_国庆头像sub') # 设置文件存放的路径。需替换成你的路径
hq_png = Image.open('hq.png') # 打开红旗图片
wx_head = Image.open('wx_head.jpg') # 打开微信头像图片
hq_png = hq_png.resize(wx_head.size) # 将国企尺寸调整为头像大小
# 遍历国旗头像的每个像素点,修改透明度
for i in range(hq_png.size[0]):
for j in range(hq_png.size[1]):
r, g, b, _ = hq_png.getpixel((i, j))
alpha = max(0, 255 - i // 5 - j // 7) # 设置透明度值
hq_png.putpixel((i, j), (r, g, b, alpha)) # 重新填充像素
wx_head.paste(hq_png, (0, 0), hq_png) # 将新国旗粘贴到头像上面
wx_head.save('wx_head_gq.png') # 保存更新好的图
wx_head = Image.open('wx_head_gq.png')
head_size = 200,200 # 设置微信头像的标准尺寸
wx_head = wx_head.resize(head_size) # 更改图片成微信头像的标准尺寸
wx_head.save('wx_head_gq.png')
得到结果:
如果你复制代码进行实现,需注意的点如下:
- os.chdir中的路径需替换成你存红旗和微信头像的路径。
- hq.png指的是红旗图片名称(可根据实际情况修改),且图片格式需为png,。
- wx_head.jpg指的是微信头像图片的名称(可以根据实际情况修改)。