溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現(xiàn)給自己的頭像加一個小國旗

發(fā)布時間:2020-10-29 16:27:21 來源:億速云 閱讀:184 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)Python實現(xiàn)給自己的頭像加一個小國旗,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

國旗

對于國旗,我們可以使用 Python 來畫一個,用到的 Python 庫是大家比較熟悉的 turtle,我們的五星紅旗組成元素包括:紅底、一顆黃的主星和四顆黃的副星。

首先畫一個長方形的紅底,代碼實現(xiàn)如下:

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

效果如下:

Python實現(xiàn)給自己的頭像加一個小國旗

接著畫一顆主星,代碼實現(xiàn)如下:

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實現(xiàn)給自己的頭像加一個小國旗

最后畫四顆副星,代碼實現(xiàn)如下:

# 副星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實現(xiàn)給自己的頭像加一個小國旗

月餅

對于月餅也可以用 Python 來畫一個,月餅組成元素主要包括:外層圓形的花紋輪廓、內(nèi)層輪廓和文字。

首先來畫外層圓形的花紋輪廓,代碼實現(xiàn)如下:

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實現(xiàn)給自己的頭像加一個小國旗

再接著畫內(nèi)層輪廓,代碼實現(xiàn)如下:

# 設(shè)置畫筆粗細
turtle.pensize(20)
# 填充顏色(外部、內(nèi)部)
turtle.color("#F5E16F", "#FF9933")
goto(0, -200)
# 準備開始填充
turtle.begin_fill()
turtle.circle(200)
# 填充結(jié)束
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實現(xiàn)給自己的頭像加一個小國旗

最后來添加文字,比如豆沙餡的就添加豆沙兩個字,代碼實現(xiàn)如下:

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

最終效果如下:

Python實現(xiàn)給自己的頭像加一個小國旗

頭像加國旗(月餅)

最后,我們將剛才畫好的國旗或月餅加到自己的頭像上,用到的 Python 庫是 OpenCV,安裝使用 pip install opencv-python 命令即可,如果速度太慢,可以使用 pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python 加速下載安裝。

這個功能實現(xiàn)起來也比較簡單,只需十幾行 Python 代碼就可以搞定,代碼實現(xiàn)如下:

# 讀取頭像和國旗圖案
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]
# 保存最終結(jié)果
cv2.imwrite('new_head.jpg', img_head)

假如我的原頭像如下:

Python實現(xiàn)給自己的頭像加一個小國旗

給頭像加個小國旗,效果如下:

Python實現(xiàn)給自己的頭像加一個小國旗

給頭像加個小月餅,效果如下:

Python實現(xiàn)給自己的頭像加一個小國旗

上述就是小編為大家分享的Python實現(xiàn)給自己的頭像加一個小國旗了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI