11

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

 3 years ago
source link: http://www.justdopython.com/2020/12/22/head-flag/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

发表于 2020-12-22

| 分类于 python

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

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

# 读取头像和圣诞老人图片
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,代码实现如下:

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 技术,这里分享关于 Python 的一切。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK