如何利用Python给自己的头像加一个小国旗(小月饼)

时间:2021-05-23

今年国庆节也是中秋节,首先祝大家节日快乐,本文我们使用 Python 来给自己的头像加一个小国旗或小月饼。

国旗

对于国旗,我们可以使用 Python 来画一个,用到的 Python 库是大家比较熟悉的 turtle,我们的五星红旗组成元素包括:红底、一颗黄的主星和四颗黄的副星。

首先画一个长方形的红底,代码实现如下:

turtle.setup(600, 400, 0, 0)turtle.bgcolor("red")

效果如下:

接着画一颗主星,代码实现如下:

turtle.fillcolor("yellow")turtle.color('yellow')turtle.speed(10)# 主星turtle.begin_fill()turtle.up()turtle.goto(-280,100)turtle.down()for i in range (5): turtle.forward(150) turtle.right(144)turtle.end_fill()

效果如下:

最后画四颗副星,代码实现如下:

# 副星1turtle.begin_fill()turtle.up()turtle.goto(-100,180)turtle.setheading(305)turtle.down()for i in range (5): turtle.forward(50) turtle.left(144)turtle.end_fill()# 副星2turtle.begin_fill()turtle.up()turtle.goto(-50,110)turtle.setheading(30)turtle.down()for i in range (5): turtle.forward(50) turtle.right(144)turtle.end_fill()# 副星3turtle.begin_fill()turtle.up()turtle.goto(-40,50)turtle.setheading(5)turtle.down()for i in range (5): turtle.forward(50) turtle.right(144)turtle.end_fill()# 副星4turtle.begin_fill()turtle.up()turtle.goto(-100,10)turtle.setheading(300)turtle.down()for i in range (5): turtle.forward(50) turtle.left(144)turtle.end_fill()

最终效果如下:

月饼

对于月饼也可以用 Python 来画一个,月饼组成元素主要包括:外层圆形的花纹轮廓、内层轮廓和文字。

首先来画外层圆形的花纹轮廓,代码实现如下:

turtle.speed(100)turtle.color("#F5E16F")for i in range(20): # 顺时针移动18度 turtle.right(18) turtle.begin_fill() # 向前移动的距离 turtle.forward(220) # 画半径为 40 的半圆 turtle.circle(40, 180) # 画完半圆之后回到(0,0) turtle.goto(0, 0) turtle.right(360) turtle.end_fill()

效果如下:

再接着画内层轮廓,代码实现如下:

# 设置画笔粗细turtle.pensize(20)# 填充颜色(外部、内部)turtle.color("#F5E16F", "#FF9933")goto(0, -200)# 准备开始填充turtle.begin_fill()turtle.circle(200)# 填充结束turtle.end_fill()turtle.right(360)turtle.color('#F5E16F')goto(0, -180)for i in range(12): turtle.begin_fill() turtle.circle(60, 120) turtle.left(180) turtle.circle(60, 120) turtle.end_fill()

效果如下:

最后来添加文字,比如豆沙馅的就添加豆沙两个字,代码实现如下:

turtle.color("#F5E16F")turtle.write("豆沙", font=("隶书", 60, "bold"))

最终效果如下:

头像加国旗(月饼)

最后,我们将刚才画好的国旗或月饼加到自己的头像上,用到的 Python 库是 OpenCV,安装使用 pip install opencv-python 命令即可,如果速度太慢,可以使用 pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python 加速下载安装。

这个功能实现起来也比较简单,只需十几行 Python 代码就可以搞定,代码实现如下:

# 读取头像和国旗图案img_head = cv2.imread('head.jpg')img_flag = cv2.imread('flag.png')# 获取头像和国旗图案宽度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给头像加小国旗(小月饼)内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章