【python】10分鍾教你用python下載和拼接微信好友頭像圖片


前言

相信微信大家是用得再多也不過了。那么,對於python+微信,又能玩出什么新的花樣呢?下面小編就給大家帶來一個好玩的東西。用python下載所有的微信好友的頭像,然后拼接成一張大圖。這樣,大家就可以轉載到朋友圈裝XY了。哈哈。

還是先給大家看看效果圖如何。畢竟無圖言X。

image

PS:圖侵刪。這不是小編的微信哈……

好了廢話不多說,看看我們是怎么一步一步做出來的吧。

下載微信好友頭像

第一步當然是下載微信好友的頭像,然后才能進行拼接。這里我們用到了itchat這個python的庫。關於這個庫,更多好玩的東西我們在后期會推出的,大家敬請關注and期待就好了。先看代碼:

 1itchat.auto_login()
2for friend in itchat.get_friends(update=True)[0:]:
3    #可以用此句print查看好友的微信名、備注名
4    print(friend['NickName']+"("+friend['RemarkName']+")")
5    img = itchat.get_head_img(userName=friend["UserName"])
6    path = headImgPath+friend['NickName']+"("+friend['RemarkName']+").jpg"
7    try:
8        with open(path,'wb'as f:
9            f.write(img)
10    except Exception as e:
11        print(repr(e))

代碼灰常簡單。首先我們調用itchat.auto_login()進行微信登陸。

image

掃碼登陸成功以后,我們再獲取好友,然后獲取頭像,再配置一下文件保存路徑,最后把頭像寫入文件里面。是不是簡單到難以置信?

image

拼接好友頭像

拼接我們用了PIL庫里面的Image模塊。代碼看下面:

 1pathList = []
2# os.listdir() 方法用於返回指定的文件夾包含的文件或文件夾的名字的列表。這個列表以字母順序。 它不包括 '.' 和'..' 即使它在文件夾中。
3for item in os.listdir(headImgPath):
4    imgPath = os.path.join(headImgPath, item)
5    pathList.append(imgPath)
6
7total = len(pathList)#total是好友頭像圖片總數
8line = int(sqrt(total))#line是拼接圖片的行數(即每一行包含的圖片數量)
9NewImage = Image.new('RGB', (128*line,128*line))
10x = y = 0
11for item in pathList:
12    try:
13        img = Image.open(item)
14        # Image.ANTIALIAS:平滑濾波。對所有可以影響輸出像素的輸入像素進行高質量的重采樣濾波,以計算輸出像素值。
15        img = img.resize((128,128),Image.ANTIALIAS)
16        NewImage.paste(img, (x * 128 , y * 128))
17        x += 1
18    except IOError:
19        print("第%d行,%d列文件讀取失敗!IOError:%s" % (y,x,item))
20        x -= 1
21    if x == line:
22        x = 0
23        y += 1
24    if (x+line*y) == line*line:
25        break
26NewImage.save("final.jpg")

我們先是用os.listdir獲取了所有頭像的路徑保存到pathList里面。接着創建一個大圖片,將大圖片划分為n個小方格,再往小方格里面塞好友頭像。需要注意的是,在塞好友頭像前,需要對頭像進行縮略變小才能塞進去。最后,生成最終文件。在當前目錄下即可找到final.jpg。即為我們的成品。大家就可以拿着它去朋友圈裝逼了~

image

本來想弄一個現成的供大家下載使用,不過想想還是算了。大家直接下載python源碼運行即可。

欲獲取代碼,請關注我們的微信公眾號【程序猿聲】,在后台回復:txpj。即可下載。

微信公眾號

推薦文章:10分鍾教你用Python做個打飛機小游戲超詳細教程
推薦文章:10分鍾教你用python打造貪吃蛇超詳細教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM