國慶中秋雙節(jié),用Python制作微信國旗頭像,其實很簡單。
效果展示

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



2.準備頭像圖片

代碼實現(xiàn)
pip install pillow
安裝完成后,使用pillow庫來制作國旗頭像。
只需要十幾行代碼就能實現(xiàn)。完整代碼如下。
# coding=utf-8
from PIL import Image
import math
key = 3.2 # 修改key值可以調(diào)整國旗的范圍,推薦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()方法,讀取準備好的國旗圖片和頭像圖片到代碼中。
對國旗圖片進行截取,獲取一張正方形的圖片,截取時調(diào)整截取位置,保證5顆五角星完整展示在截圖中。crop()方法中傳入的是一個(left, upper, right, lower)的元組,分別是截圖的左、上、右、下像素位置。
將正方形國旗截圖設置成透明度漸變的圖片。國旗圖片的模式默認是RGBA,本文需要的剛好是RGBA(red,green,blue,alpha)模式的圖片,RGBA模式的圖片顏色值是一個長度為4的元組,我們修改不同像素點的A值即可將圖片設置成漸變。
本文是以國旗左上角為圓心,離圓心越遠的像素點A值越小,像素點越透明。使用getpixel()和putpixel()兩個方法來獲取和重設像素點的顏色值,使用math.sqrt()計算像素點距離。 將漸變圖片的大小轉換成和頭像的大小一樣,然后粘貼到圖片頂層。使用resize()方法重設圖片大小,使用paste()方法粘貼圖片。
保存圖片,此時的微信頭像圖片上已經(jīng)粘貼了透明漸變的國旗圖片,微信國旗頭像制作完成。
總結
太太太難了!河北承德程序員在GitHub遠程給外企工作,105.8萬元收入,竟全部沒收!
![]()
分享
![]()
收藏
![]()
點贊
![]()
在看
評論
圖片
表情
