python itchat實(shí)現(xiàn)微信好友頭像拼接圖的示例代碼
偶然在網(wǎng)上發(fā)現(xiàn)itchat這個(gè)框架,itchat是一個(gè)開源的微信個(gè)人號(hào)接口,它使python調(diào)用微信變得非常簡單。看到網(wǎng)上有人發(fā)自己微信好友的頭像拼接圖,自己也做了一個(gè),感覺還蠻好玩的。
效果圖

下面介紹實(shí)現(xiàn)過程:
安裝itchat
這個(gè)當(dāng)然還是使用豆瓣源了,速度杠杠的pip install -i https://pypi.douban.com/simple/ itchat
項(xiàng)目依賴
頭像拼接用到了pillow這個(gè)第三方庫,和itchat一樣的安裝方法
代碼
首先調(diào)用接口登錄,然后可以獲取到好友信息,其中第一個(gè)為自己的信息。返回的信息為一個(gè)列表,里面內(nèi)容可以復(fù)制出來通過json工具格式化,查看返回的字段。然后再次調(diào)用接口下載圖片,用pillow拼接即可。
import itchat
import math
import os
import PIL.Image as Image
#給auto_login方法傳入值為真的hotReload.即使程序關(guān)閉,一定時(shí)間內(nèi)重新開啟也可以不用重新掃碼
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
#下載所有好友的頭像圖片
num = 0
for i in friends:
img = itchat.get_head_img(i["UserName"])
with open('./headImg/' + str(num) + ".jpg",'wb') as f:
f.write(img)
f.close()
num += 1
#獲取文件夾內(nèi)的文件個(gè)數(shù)
length = len(os.listdir('./headImg'))
#根據(jù)總面積求每一個(gè)的大小
each_size = int(math.sqrt(float(810*810)/length))
#每一行可以放多少個(gè)
lines = int(810/each_size)
#生成白色背景新圖片
image = Image.new('RGBA', (810, 810),'white')
x = 0
y = 0
for i in range(0,length):
try:
img = Image.open('./headImg/' + str(i) + ".jpg")
except IOError:
print(i)
print("Error")
else:
img = img.resize((each_size, each_size), Image.ANTIALIAS) #resize image with high-quality
image.paste(img, (x * each_size, y * each_size))
x += 1
if x == lines:
x = 0
y += 1
image.save('./headImg/' + "all.jpg")
#通過文件傳輸助手發(fā)送到自己微信中
itchat.send_image('./headImg/' + "all.jpg",'filehelper')
image.show()
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python的package機(jī)制如何簡化utils包設(shè)計(jì)詳解
這篇文章主要給大家介紹了關(guān)于使用Python的package機(jī)制如何簡化utils包設(shè)計(jì)的相關(guān)資料,文中通過示例代碼的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-12-12
Python遞歸函數(shù)反轉(zhuǎn)序列的實(shí)現(xiàn)
本文主要介紹了Python遞歸函數(shù)反轉(zhuǎn)序列的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Python 操作 PostgreSQL 數(shù)據(jù)庫示例【連接、增刪改查等】
這篇文章主要介紹了Python 操作 PostgreSQL 數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了Python 連接PostgreSQL及增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2020-04-04
Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析
這篇文章主要介紹了Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
在python image 中實(shí)現(xiàn)安裝中文字體
這篇文章主要介紹了在python image 中實(shí)現(xiàn)安裝中文字體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python利用遞歸方法實(shí)現(xiàn)求集合的冪集
這篇文章主要給大家介紹了關(guān)于python利用遞歸方法實(shí)現(xiàn)求集合的冪集的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
使用Python爬蟲庫requests發(fā)送表單數(shù)據(jù)和JSON數(shù)據(jù)
今天再為大家介紹下使用Python爬蟲庫requests發(fā)送表單數(shù)據(jù)和JSON數(shù)據(jù)的方法,這是最基本的使用方法,大家可以參考測試下2020-01-01

