乐趣区

关于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 小二 后盾回复 201001 获取。

欢送微信搜寻 Python 小二 ,第一工夫浏览、获取源码,回复关键字 1024 能够收费支付集体整顿的各类编程语言学习材料。

退出移动版