你還在@微信官方?我來教你用Python生成你想要的微信頭像
- 2019 年 10 月 7 日
- 筆記

@圖片bysisi
今天早上@微信官方
突然火了,
一句「請給我一面國旗@微信官方」
刷遍朋友圈。
到底是什麼呢?
我們先來看看朋友圈


當然,這只是零零散散的部分截圖,
看到這些,一股熱血灑了出來,
我興緻勃勃的準備發朋友圈,
請神仙微信官方給我也換個頭像,
就在這時,我手賤,
一不小心刷了下朋友圈,
結果:

我,好(lei)高(ge)興(qu)啊! 原來是套路啊,
後來仔細想想,也是,
微信官方
哪有那麼多時間給我換頭像。
當然,
這也激發了我的程式設計師思維,
別人能做,我為啥不能?
說干就干,拿起Python就往前沖。
需求/過程/程式碼
需求:
原始需求
給自己的微信頭像
加個國旗或者70的logo
(喜慶建國70周年)
解析:好像在和微信交互,太難了
簡化需求
1.給圖片加上國旗或者70的logo 2.然後手動換頭像 解析:要摳圖,在圖片指定位置加小圖片,好像也比較難
簡化需求+1
1.朋友圈隨便找兩個已經換好頭像的好友,下載他們的影像 2.摳圖工具去除影像中人像部分,弄出基本模型 3.合併原頭像與我們扣圖生成的模型 4.手動換微信圖片 解析:理論上沒有問題
過程/程式碼
Step 1
1.朋友圈隨便找兩個已經換好頭像的好友,下載他們的影像

太簡單了,打開朋友圈,看看哪個人在@微信官方,頭像還換過來了,對,就是他在騙你,斗他。
Step 2
2.摳圖工具去除影像中人像部分,弄出基本模型
嗯~我不太會用PS,

這是我摳出來的!慘不忍睹~

不過,我有個精通PS的女朋友呀~

還是女朋友厲害,三下兩下就好了~誇誇~
獲取文件素材,請在微信公眾號回復:國慶
Step 3
3.合併原頭像與我們扣圖生成的模型
這個步驟是個漫長的過程,
我發了社群看看有沒有了解影像處理的朋友,
發了朋友圈看看有沒有志同道合的朋友~
有些人回復了,
卻沒有解決問題!


網上也找了一堆,沒有對口的,
在肚子叫聲漸漸大起來時,
我深思:我的需求難嗎?我的需求奇葩嗎?
就在這時候,
讀者朋友提供了一個他之前做的
換證件照底色的程式碼樣例,
我看了一下處理方法,試了一下,
OK!
這裡特別感謝:Dime 同學的幫助。


具體程式碼:
# -*- coding: utf-8 -*- """ @author = 老表 @date = 2019-09-24 @個人公眾號 : 簡說Python """ # 注意:print_function的導入必須在Image之前,否則會報錯 from __future__ import print_function from PIL import Image """ 需求:給圖片右下角添加中國國旗 歡迎國慶,喜慶70周年 """ class Picture: def handle_picture(self): # 打開圖片模版 img1 = Image.open("./img/70.jpg") img1 = img1.convert('RGBA') # 打開原來的微信頭像 img2 = Image.open("./img/old.jpg") img2 = img2.convert('RGBA') if img2.size != (700, 700): # 判斷圖片大小,統一改為 700*700 # 修改圖片尺寸 size = (700, 700) img2.thumbnail(size) img2.show() # 圖片粘貼選區 loc = (0, 0, 700, 700) # 將img1 粘貼到 img2 img2.paste(img1, loc, img1) img2.show() # 顯示圖片 img2.save("new.png") # 保存生成的頭像圖片 t0 = Picture() t0.handle_picture()
運行:

Step 4
4.手動換微信圖片

後話
等我寫完程式碼,
幫幾個朋友換了頭像,
再去看朋友圈,看消息,是這樣的:



哈哈哈哈,也太有意思了吧~ 當然,也出現了些灰產:


當然,也有明白人:

最後附上《中華人民共和國國旗法》第十八條,
望各位悉知。

【完】