用 Python 给微信头像加个圣诞老人(平安果)小图标

圣诞老人是西方神话里圣诞节前夜给小孩子赠送礼物的人物,在国内的圣诞节中,除了圣诞老人,苹果(平安果)也是一个特色元素,本文我们看一下如何使用 Python 给自己的微信头像加一个圣诞老人或苹果小图标。

实现

功能的实现我们用到的是 OpenCV 库,安装使用 pip install opencv-python 即可,实现的思路比较简单,就是将圣诞老人或苹果图片按一定比例缩放,之后再将其与头像进行合并即可,代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 读取头像和圣诞老人图片
img_head = cv2.imread('head.jpg')
img_flag = cv2.imread('sc.jpg')
# 获取头像和圣诞老人图片宽度
w_head, h_head = img_head.shape[:2]
w_flag, h_flag = img_flag.shape[:2]
# 计算图案缩放比例
scale = w_head / w_flag / 4
# 缩放图案
img_flag = cv2.resize(img_flag, (0, 0), fx=scale, fy=scale)
# 获取缩放后新宽度
w_flag, h_flag = img_flag.shape[:2]
# 按 3 个通道合并图片
for c in range(0, 3):
    img_head[w_head - w_flag:, h_head - h_flag:, c] = img_flag[:, :, c]
# 保存最终结果
cv2.imwrite('new_head.jpg', img_head)

先以圣诞老人为例,我们看一下效果。

圣诞老人如下:

头像如下:

实现效果如下:

接着再看一下苹果的示例,这里我们使用 Python 自己画一个苹果,使用的 Python 库是大家比较熟悉的 turtle,代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
turtle.setup(600, 600, 0, 0)
turtle.up()
turtle.goto(0, -200)
turtle.down()
# 先画一个圆,并填充为红色
turtle.begin_fill()
turtle.color("red")
turtle.circle(radius=150)
turtle.end_fill()
# 画苹果把
turtle.color("brown")
turtle.pu()
turtle.goto(-90, 0)
turtle.pd()
turtle.circle(180, 40)
turtle.pu()
turtle.seth(105)
turtle.goto(-20, 20)
turtle.pd()
turtle.circle(180, 50)
turtle.pd()
# 画左边叶子
turtle.begin_fill()
turtle.color("green")
turtle.circle(180, 50)
turtle.seth(-30)
turtle.circle(180, 55)
turtle.end_fill()
# 画右边叶子
turtle.begin_fill()
turtle.color("green")
turtle.seth(0)
turtle.circle(180, 50)
turtle.seth(-180)
turtle.circle(180, 50)
turtle.end_fill()
turtle.done()

效果如下:

最后,我们看一下合并后的头像效果:

总结

本文我们给大家演示了如何通 Python 给自己的头像加圣诞老人和苹果小图标,如果你喜欢这种风格的头像,可以自己加一下。

示例代码:py-flag

Python Geek Tech wechat
欢迎订阅 Python 技术,这里分享关于 Python 的一切。