亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 一鍵制作微信好友圖片墻的方法

系統(tǒng) 2104 0

wxpy、pyinstalller 庫的使用。

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

Python 一鍵制作微信好友圖片墻的方法_第1張圖片

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

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

自然不是了,Python 做的,是不是覺得沒有 Python 干不了的事兒。其實(shí),這種圖很早就有人玩過了,不過下面還是來說說怎么做出來,這樣你也可以做一個(gè)自己微信好友的圖片墻。

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

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

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

Python 一鍵制作微信好友圖片墻的方法_第2張圖片

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

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

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

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

  • wxpy 庫,用于獲取好友頭像然后下載
  • Pillow 庫,用于拼接頭像
  • Pyinstaller 庫,用來打包 Python 程序成 exe 文件

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

完整代碼如下:

            
# -*- coding: utf-8 -*-
from wxpy import *
import math
from PIL import Image
import os
# 創(chuàng)建頭像存放文件夾
def creat_filepath():
 avatar_dir = os.getcwd() + "\\wechat\\"
 if not os.path.exists(avatar_dir):
 os.mkdir(avatar_dir)
 return avatar_dir
# 保存好友頭像
def save_avatar(avatar_dir):
 # 初始化機(jī)器人,掃碼登陸
 bot = Bot()
 friends = bot.friends(update=True)
 num = 0
 for friend in friends:
 friend.get_avatar(avatar_dir + '\\' + str(num) + ".jpg")
 print('好友昵稱:%s' % friend.nick_name)
 num = num + 1
# 拼接頭像
def joint_avatar(path):
 # 獲取文件夾內(nèi)頭像個(gè)數(shù)
 length = len(os.listdir(path))
 # 設(shè)置畫布大小
 image_size = 2560
 # 設(shè)置每個(gè)頭像大小
 each_size = math.ceil(2560 / math.floor(math.sqrt(length)))
 # 計(jì)算所需各行列的頭像數(shù)量
 x_lines = math.ceil(math.sqrt(length))
 y_lines = math.ceil(math.sqrt(length))
 image = Image.new('RGB', (each_size * x_lines, each_size * y_lines))
 x = 0
 y = 0
 for (root, dirs, files) in os.walk(path):
 for pic_name in files:
 # 增加頭像讀取不出來的異常處理
 try:
 with Image.open(path + pic_name) as img:
 img = img.resize((each_size, each_size))
 image.paste(img, (x * each_size, y * each_size))
 x += 1
 if x == x_lines:
 x = 0
 y += 1
 except IOError:
 print("頭像讀取失敗")
 img = image.save(os.getcwd() + "/wechat.png")
 print('微信好友頭像拼接完成!')
if __name__ == '__main__':
 avatar_dir = creat_filepath()
 save_avatar(avatar_dir)
 joint_avatar(avatar_dir)
          

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

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

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

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

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

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

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

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

pipenv install wxpy math os

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

OSError: cannot identify image file

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

pipenv install Pillow==4.2.1

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

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

運(yùn)行如下:

Python 一鍵制作微信好友圖片墻的方法_第3張圖片

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


Python 一鍵制作微信好友圖片墻的方法_第4張圖片

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

總結(jié)

以上所述是小編給大家介紹的Python 一鍵制作微信好友圖片墻的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91久久视频 | 欧美日韩中文字幕在线手机版本 | a级做爰片毛片视频 | 69国产成人综合久久精品91 | www神马我不卡影院免费观看 | 国产国产精品人在线视 | 成人99国产精品一级毛片 | 特级黄一级播放 | 狠狠的操你 | 精品亚洲综合久久中文字幕 | 国模私拍视频在线 | 狠狠色噜噜狠狠狠8888米奇 | 天天射天天草 | a一级特黄日本大片 s色 | 中文字幕综合在线 | 成人国产欧美精品一区二区 | 99香蕉国产 | 国产成人综合精品一区 | 亚洲欧洲日产国码久在线观看 | 亚洲高清免费视频 | 久久91精品牛牛 | 天天爽夜夜爽精品视频一 | 四虎 影院ww9584h | 成人夜色香网站在线观看 | 九九九| 午夜视频网站在线观看 | 久久视屏这里只有精品6国产 | 亚洲综合欧美在线 | 免费观看欧美精品成人毛片能看的 | 自拍在线视频 | 久久精品国产第一区二区 | 青青国产成人久久91网 | 波多野结中文字幕在线69视频 | 91福利刘玥国产在线观看 | 久久97精品久久久久久清纯 | 国产免费一区二区三区免费视频 | 99精品久久久久久久免费看蜜月 | 亚洲精品入口一区二区在线观看 | 99精品在线播放 | 9久re在线观看视频精品 | 亚洲精品综合久久中文字幕 |