你還在@微信官方?我來教你用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.手動換微信圖片

後話

等我寫完代碼,

幫幾個朋友換了頭像,

再去看朋友圈,看消息,是這樣的:

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

當然,也有明白人:

最後附上《中華人民共和國國旗法》第十八條,

望各位悉知。

【完】