日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一键拼出你的微信好友图片墙!

發(fā)布時(shí)間:2024/9/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一键拼出你的微信好友图片墙! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊“小詹學(xué)Python”,選擇“置頂”公眾號(hào)

重磅干貨,第一時(shí)間送達(dá)

本文轉(zhuǎn)載自高級(jí)農(nóng)民工,禁二次轉(zhuǎn)載

上午發(fā)了張微信近 2000 位好友的頭像拼圖,讓大伙兒看能不能快速找到自己的頭像,沒(méi)想到反響很強(qiáng)烈,引得陣陣驚呼與膜拜,沒(méi)有料到。

有沒(méi)有犯密集恐懼癥?這并不震撼,如果你有 5000 位好友的話,做出來(lái)的圖看著會(huì)更刺激些。

看完了圖,你可能想知道這個(gè)圖咋做出來(lái)的,不會(huì)是我閑著無(wú)聊把把好友頭像一個(gè)個(gè)保存下來(lái)再用 PS 拼的吧?

自然不是了,Python 做的,是不是覺(jué)得沒(méi)有 Python 干不了的事兒。其實(shí),這種圖很早就有人玩過(guò)了,不過(guò)下面還是來(lái)說(shuō)說(shuō)怎么做出來(lái),這樣你可以做一個(gè)自己的微信好友圖片墻,拿去朋友圈裝裝逼。

有兩種方法,一種簡(jiǎn)單的,不用接觸 Python 代碼,一種稍微復(fù)雜點(diǎn),需要寫(xiě)代碼。

先說(shuō)簡(jiǎn)單的方法,只需要兩步:運(yùn)行程序然后掃微信二維碼就行了。剩下的交給程序自己蹦跶,泡杯茶在電腦前等待幾分鐘左右就可以得到圖片,具體的等待時(shí)間視微信好友數(shù)量而不同,我近 2000 好友,用時(shí) 10 分鐘左右。

一個(gè)簡(jiǎn)單的操作示意圖:

幾分鐘后就可以得到上面的圖片了。

其實(shí)到這兒就完了,是不是很簡(jiǎn)單。


你要感興趣怎么實(shí)現(xiàn)的,可以往下看用 Python 代碼怎么實(shí)現(xiàn)的,代碼不長(zhǎng),60 行就可以搞定。

核心是利用三個(gè)個(gè)庫(kù):

  • wxpy 庫(kù),用于獲取好友頭像然后下載

  • Pillow 庫(kù),用于拼接頭像

  • Pyinstaller 庫(kù),用來(lái)打包 Python 程序成 exe 文件

程序通過(guò)三個(gè)函數(shù)實(shí)現(xiàn),第一個(gè) creat_filepath 函數(shù)生成圖片下載文件路徑,第二個(gè) save_avatar 函數(shù)循環(huán)獲取微信好友頭像然后保存到本地,第三個(gè) joint_avatar 函數(shù)就是把頭像拼接成一張大圖。

完整代碼如下:

1#?-*-?coding:?utf-8?-*-
2from?wxpy?import?*
3import?math
4from?PIL?import?Image
5import?os
6
7#?創(chuàng)建頭像存放文件夾
8def?creat_filepath():
9????avatar_dir?=?os.getcwd()?+?"\\wechat\\"
10????if?not?os.path.exists(avatar_dir):
11????????os.mkdir(avatar_dir)
12????return?avatar_dir
13
14#?保存好友頭像
15def?save_avatar(avatar_dir):
16????#?初始化機(jī)器人,掃碼登陸
17????bot?=?Bot()
18????friends?=?bot.friends(update=True)
19????num?=?0
20????for?friend?in?friends:
21????????friend.get_avatar(avatar_dir?+?'\\'?+?str(num)?+?".jpg")
22????????print('好友昵稱(chēng):%s'?%?friend.nick_name)
23????????num?=?num?+?1
24
25#?拼接頭像
26def?joint_avatar(path):
27????#?獲取文件夾內(nèi)頭像個(gè)數(shù)
28????length?=?len(os.listdir(path))
29????#?設(shè)置畫(huà)布大小
30????image_size?=?2560
31????#?設(shè)置每個(gè)頭像大小
32????each_size?=?math.ceil(2560?/?math.floor(math.sqrt(length)))
33????#?計(jì)算所需各行列的頭像數(shù)量
34????x_lines?=?math.ceil(math.sqrt(length))
35????y_lines?=?math.ceil(math.sqrt(length))
36????image?=?Image.new('RGB',?(each_size?*?x_lines,?each_size?*?y_lines))
37????x?=?0
38????y?=?0
39????for?(root,?dirs,?files)?in?os.walk(path):
40????????for?pic_name?in?files:
41????????????#?增加頭像讀取不出來(lái)的異常處理
42????????????????try:
43????????????????????with?Image.open(path?+?pic_name)?as?img:
44????????????????????????img?=?img.resize((each_size,?each_size))
45????????????????????????image.paste(img,?(x?*?each_size,?y?*?each_size))
46????????????????????????x?+=?1
47????????????????????????if?x?==?x_lines:
48????????????????????????????x?=?0
49????????????????????????????y?+=?1
50????????????????except?IOError:
51????????????????????print("頭像讀取失敗")
52
53????img?=?image.save(os.getcwd()?+?"/wechat.png")
54????print('微信好友頭像拼接完成!')
55
56if?__name__?==?'__main__':
57????avatar_dir?=?creat_filepath()
58????save_avatar(avatar_dir)
59????joint_avatar(avatar_dir)

可以直接在運(yùn)行程序文件,也可以用 Pyinstaller 文件打包后運(yùn)行。這里額外說(shuō)一下 pyinstaller 打包的方法和閉坑指南。

不要直接在系統(tǒng)中用 pyinstaller 打包,否則打包出來(lái)的 exe 文件會(huì)很大。建議在虛擬環(huán)境中打包,打包出來(lái)的 exe 文件會(huì)小很多, 10MB 左右。

虛擬環(huán)境創(chuàng)建很簡(jiǎn)單,簡(jiǎn)單說(shuō)一下步驟:

1 安裝 pipenv 和 pyinstaller 包,用于后續(xù)創(chuàng)建虛擬環(huán)境和打包程序:

1pip?install?pipenv
2pip?install?pyinstaller?#?已安裝就不用安裝了

2 選擇一個(gè)合適的目錄作為 Python 虛擬環(huán)境,運(yùn)行:

1pipenv?install?#?創(chuàng)建虛擬環(huán)境
2pipenv?shell?#?創(chuàng)建好后,進(jìn)入虛擬環(huán)境

3 安裝程序引用的庫(kù),上面程序引用了四個(gè)庫(kù):wxpy、math、os 和 PIL,一行代碼就可以完成安裝。

1pipenv?install?wxpy?math?os

4 這里要額外注意 PIL 的安裝,現(xiàn)在不用 PIL 庫(kù),而是用 Pillow 庫(kù)取代,所以安裝 Pillow 庫(kù)就行。但不要安裝最新的 6.0.0 版本,否則可能會(huì)遇到各種錯(cuò)誤,例如:PIL 無(wú)法識(shí)別下載的 jpg 頭像文件。

1OSError:?cannot?identify?image?file?<ImageFieldFile:?images

正確的安裝方法是安裝低版本,經(jīng)嘗試安裝 4.2.1 版本沒(méi)有問(wèn)題,安裝命令:

1pipenv?install?Pillow==4.2.1

5 然后打包程序就可以了:

1pyinstaller?-F?C:\Users\sony\Desktop\wechat_avatar.py?
2#?程序路徑要改成你電腦上的路徑
3#?-F?表示生成單個(gè)?exe?文件,方便運(yùn)行

運(yùn)行如下:

運(yùn)行命令,1 分鐘左右若顯示 successfully 字樣表示程序打包成功:

接著在程序目錄下找到?wechat_avatar.exe?文件,然后按照第一種方法那樣運(yùn)行就行了。

以上就是用 Python 制作微信好友圖片墻的裝逼指南。

后臺(tái)回復(fù):「微信好友」就可以得到 exe 文件和 Python 程序。

總結(jié)

以上是生活随笔為你收集整理的一键拼出你的微信好友图片墙!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。