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

 更新时间:2020年10月02日 11:26:43   作者:Python小二  
这篇文章主要给大家介绍了关于如何利用Python给自己的头像加一个小国旗(小月饼)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今年国庆节也是中秋节,首先祝大家节日快乐,本文我们使用 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()

效果如下:

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

# 副星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 来画一个,月饼组成元素主要包括:外层圆形的花纹轮廓、内层轮廓和文字。

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

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给头像加小国旗(小月饼)内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3+opencv 使用灰度直方图来判断图片的亮暗操作

    python3+opencv 使用灰度直方图来判断图片的亮暗操作

    这篇文章主要介绍了python3+opencv 使用灰度直方图来判断图片的亮暗操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python爬虫面试宝典(常见问题)

    python爬虫面试宝典(常见问题)

    这篇文章主要介绍了python爬虫面试宝典及常见问题小结,需要的朋友可以参考下
    2018-03-03
  • python如何实现多层级自动赋值字典

    python如何实现多层级自动赋值字典

    这篇文章主要介绍了python如何实现多层级自动赋值字典问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python 中enum的使用方法总结

    Python 中enum的使用方法总结

    这篇文章主要介绍了Python 中enum的使用方法总结,枚举在许多编程语言中常被表示为一种基础的数据结构使用,下文更多详细内容需要的小伙伴可以参考一下
    2022-03-03
  • 学习Python爬虫的几点建议

    学习Python爬虫的几点建议

    这篇文章主要介绍了学习Python爬虫的几点建议,对新手学习爬虫有很大的帮助,感兴趣的朋友可以了解下
    2020-08-08
  • 详解Django+Uwsgi+Nginx 实现生产环境部署

    详解Django+Uwsgi+Nginx 实现生产环境部署

    这篇文章主要介绍了详解Django+Uwsgi+Nginx 实现生产环境部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Python函数any()和all()的用法及区别介绍

    Python函数any()和all()的用法及区别介绍

    any函数:any(x),只要x中有一个不为空,0,false就返回True,否则返回False。all(x)函数必须x中的所有元素均不为空,0,false才会返回True,否则返回False。接下来通过本文给大家介绍Python函数any()和all()的用法及区别介绍,需要的朋友参考下吧
    2018-09-09
  • 翻转数列python实现,求前n项和,并能输出整个数列的案例

    翻转数列python实现,求前n项和,并能输出整个数列的案例

    这篇文章主要介绍了翻转数列python实现,求前n项和,并能输出整个数列的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python enumerate内置函数用法总结

    python enumerate内置函数用法总结

    这篇文章主要介绍了python enumerate内置函数用法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • github配置使用指南

    github配置使用指南

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git,作为一个程序猿,不会github那确实有点坑了
    2014-11-11

最新评论