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


Posted in Python onOctober 02, 2020

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

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

国旗

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

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

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

效果如下:

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

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

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()

效果如下:

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

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

# 副星1
turtle.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()
# 副星2
turtle.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()
# 副星3
turtle.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()
# 副星4
turtle.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给自己的头像加一个小国旗(小月饼)

月饼

对于月饼也可以用 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()

效果如下:

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

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

# 设置画笔粗细
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()

效果如下:

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

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

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

最终效果如下:

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

头像加国旗(月饼)

最后,我们将刚才画好的国旗或月饼加到自己的头像上,用到的 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给自己的头像加一个小国旗(小月饼)

给头像加个小月饼,效果如下:

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

总结

到此这篇关于如何利用Python给自己的头像加一个小国旗(小月饼)的文章就介绍到这了,更多相关Python给头像加小国旗(小月饼)内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python中的多线程编程
Apr 09 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
python3调用windows dos命令的例子
Aug 14 Python
TensorFlow实现自定义Op方式
Feb 04 Python
python3 re返回形式总结
Nov 20 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python3实现无权最短路径的方法
May 12 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 #Python
Python tempfile模块生成临时文件和临时目录
Sep 30 #Python
Python实现定时监测网站运行状态的示例代码
Sep 30 #Python
python如何实现word批量转HTML
Sep 30 #Python
Python识别验证码的实现示例
Sep 30 #Python
Python列表嵌套常见坑点及解决方案
Sep 30 #Python
python实现感知机模型的示例
Sep 30 #Python
You might like
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
PHP里的单例类写法实例
2015/06/25 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
理解javascript正则表达式
2016/03/08 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
Python中类型检查的详细介绍
2017/02/13 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
北承题目(C++)
2012/05/16 面试题
蛋糕店的商业计划书范文
2014/01/27 职场文书
自我鉴定标准格式
2014/03/19 职场文书
ktv筹备计划书
2014/05/03 职场文书
军训口号
2014/06/13 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
英语教师个人总结
2015/02/09 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
通讯稿范文
2015/07/22 职场文书
企业年会祝酒词
2015/08/11 职场文书