國慶中秋雙節(jié),用Python制作微信國旗頭像,其實很簡單.
作者大部分時間周更,為了不錯過精彩內容,請點擊上方“ 小斌哥ge ”,“ 星標 ”公眾號
效果展示

圖片準備
1.準備國旗圖片



2.準備頭像圖片

代碼實現(xiàn)
pip install pillow
安裝完成后,使用pillow庫來制作國旗頭像。
只需要十幾行代碼就能實現(xiàn)。完整代碼如下。
# coding=utf-8
from PIL import Image
import math
key = 3.2 # 修改key值可以調整國旗的范圍,推薦2~4之間的數(shù)字,支持小數(shù)
motherland_flag = Image.open('國旗1024.png')
head_picture = Image.open('頭像600.png')
# 截圖國旗上的五顆五角星
flag_width, flag_height = motherland_flag.size
crop_flag = motherland_flag.crop((66, 0, flag_height+66, flag_height))
# 將國旗截圖處理成顏色漸變
for i in range(flag_height):
for j in range(flag_height):
color = crop_flag.getpixel((i, j))
distance = int(math.sqrt(i*i + j*j))
alpha = 255 - int(distance//key)
new_color = (*color[0:-1], alpha if alpha > 0 else 0)
crop_flag.putpixel((i, j), new_color)
# 修改漸變圖片的尺寸,適應頭像大小,粘貼到頭像上
new_crop_flag = crop_flag.resize(head_picture.size)
head_picture.paste(new_crop_flag, (0, 0), new_crop_flag)
# 保存自己的國旗頭像
head_picture.save('國旗頭像.png')
代碼介紹:
-
導入需要使用的Python庫,pillow庫用于對圖片進行截取、大小修改、粘貼等處理。math庫用于計算像素點的距離。
-
使用Image.open()方法,讀取準備好的國旗圖片和頭像圖片到代碼中。
-
對國旗圖片進行截取,獲取一張正方形的圖片,截取時調整截取位置,保證5顆五角星完整展示在截圖中。crop()方法中傳入的是一個(left, upper, right, lower)的元組,分別是截圖的左、上、右、下像素位置。
-
將正方形國旗截圖設置成透明度漸變的圖片。國旗圖片的模式默認是RGBA,本文需要的剛好是RGBA(red,green,blue,alpha)模式的圖片,RGBA模式的圖片顏色值是一個長度為4的元組,我們修改不同像素點的A值即可將圖片設置成漸變。
本文是以國旗左上角為圓心,離圓心越遠的像素點A值越小,像素點越透明。使用getpixel()和putpixel()兩個方法來獲取和重設像素點的顏色值,使用math.sqrt()計算像素點距離。 -
將漸變圖片的大小轉換成和頭像的大小一樣,然后粘貼到圖片頂層。使用resize()方法重設圖片大小,使用paste()方法粘貼圖片。
-
保存圖片,此時的微信頭像圖片上已經粘貼了透明漸變的國旗圖片,微信國旗頭像制作完成。
總結
相關閱讀??
分享
收藏
點贊
在看
評論
圖片
表情
