还记得当时刷屏朋友圈的@微信官方,给自己头像加国旗吗?本文教大家用十三行Python代码实现该功能。
一、绘制成品
先来看几个绘制成品吧,可以直接下载用作微信头像哟(已经在代码中设置图片为标准微信头像尺寸)。
1 哪吒头像加国旗
2 手托地球加国旗
3 情侣头像小女孩加国旗
4 情侣头像小男孩加国旗
5 励志文字加国旗
6 风景照加国旗
7 战长沙剧照加国旗
二、Python实现代码
微信头像加国旗的思路很简单,就是把国旗的尺寸缩小到头像的一定比例,然后粘贴到微信头像的右下角。
全量代码如下:
import os
from PIL import Image
os.chdir(r"F:\微信公众号\Python\35_微信头像加国旗") #设置图片的存放路径
ico = Image.open("国旗1.jpg") #打开国旗的图片
head_img = Image.open("娃娃.jpg") #打开微信头像图片
ratio = head_img.width/ico.width/3 #计算国旗缩放比例
size_ico = (int(ico.width*ratio),int(ico.height*ratio)) #计算国旗的尺寸
ico = ico.resize(size_ico,Image.ANTIALIAS) #缩放国旗图片
ico_position = (head_img.width-ico.width,head_img.height-ico.height) #计算国旗粘贴的坐标
head_img.paste(ico, ico_position) #粘贴国旗
head_size = 200,200 #设置微信头像的标准尺寸
head_img = head_img.resize(head_size,Image.ANTIALIAS) #更改图片成微信头像的标准尺寸
head_img.save("head_flag5.png", quality=100, optimize=True) #高品质保存微信图形
代码解析:
ratio:把国旗图像缩小到微信头像的一定比例,可根据个人喜好调整。如喜欢国旗尺寸大一点可以把3变小。
ico.resize((width, height),Image.ANTIALIAS):把图像的尺寸调整为第一个参数对应的尺寸。
第二个参数:
Image.NEAREST :低质量
Image.BILINEAR:双线性 Image.BICUBIC :三次样条插值 Image.ANTIALIAS:高质量
ico_position:国旗粘贴的具体坐标。
head_size:微信头像的标准尺寸。
head_img.save:保存合成好的图像。为了图像更清晰,设置了quality参数和optimize参数。
可把代码中的国旗图案换成别的,合成专属于你的微信头像,感兴趣的朋友可以自己动手试一试。
参考文献
https://blog.csdn.net/sinat_41104353/article/details/85161174
https://blog.csdn.net/weixin_43945855/article/details/103485114?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.nonecase