1. 程式人生 > 程式設計 >如何利用Python給自己的頭像加一個小國旗(小月餅)

如何利用Python給自己的頭像加一個小國旗(小月餅)

如何利用Python給自己的頭像加一個小國旗(小月餅)

今年國慶節也是中秋節,首先祝大家節日快樂,本文我們使用 Python 來給自己的頭像加一個小國旗或小月餅。

國旗

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

首先畫一個長方形的紅底,程式碼實現如下:

turtle.setup(600,400,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給頭像加小國旗(小月餅)內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!