订阅博客
收藏博客
微博分享
QQ空间分享

环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tall

频道:社会资讯 标签:丰收的反义词广汽三菱 时间:2019年05月15日 浏览:275次 评论:0条

这是我微信近 2000 老友生成的图片墙。有没有犯密布恐惧症?这并不震环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tall撼,假如你有 潘承建5000 位老友的话,做出来的图看着会更影响些。

看完了图,你或许想知道这个图咋做出来的,很简略,一键就能生成

有两种办法,一种简略的,不必触摸 Python 代码,一种略微复杂点,需要写代码。

先说简略的办法,只需要两步:运转我给的 wechat_avatar.exe 文件,然后扫微信二维码就锤子大乱斗行了。

剩余的交给程序自己蹦跶,泡杯茶在电脑definitely前等候几分钟左右就能够得到图片,详细的等候时间视微信老友数量而不同,我近 2000 老友许晴女儿,用时 10 分钟左右。

一个简略的操作示意图:

几分钟后就能够得到上面的图片了,是不是很简略。拿去朋友圈装逼很管用。

有人或许会忧虑是否安全,肯定安全。

这四磨汤个程序在我大众号:高档农民工 后台回复:微信老友 就能够得到。


你要感兴趣详细怎样完结的,能够往下看用 Python 代码怎样完结,代码不长,60 行就能够搞定。

中心是使用三个个库:

  • wxpy 库,用于获取老友头像然后下载
  • Pi环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tallllow 库,用于拼接头像
  • Pyinstaller 库,用来打包 Python 程序成 exe 文件

程序经过三个函数完结,榜首个 creat_filepackpath 函数生成图片下载文件途径萧条,第二个 save_avatar 函数循环获取微信老友头像然后保存到本地,第三个 joint_avata浴霸r 青少年18函数便是把头像拼接成一张大图。

完好代码如下:

 金坛气候1# -*- coding: utf-8 -*-
2from wxpy import *
3import math
4from PIL import Image
5import os
6
7# 创立头像寄存文件夹
8def c活死人之地reat_filepath():
9 avatar_dir = os.getcwd() + "\\wechat\\"
10 if not os.p环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tallath.exists(avatar_dir):
11 os.mkdir(avatar_dir)
12 return avatar_dir
13
14# 保存老友头像
15def save_avatar(avatar_dir):
16 # 初始化机器人,扫码登陆
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('老友昵称:%s' % friend.nick_name)
23 num = num + 1
24
25# 拼接头像
26def joint_avatar(path):
27 # 获取文件夹内头像个数
28 length = len(os.listdir(path))
29 # 设置画布巨细
30 image_size = 2560
31 # 设置每个头像巨细
32 each_size = math.ceil(2560 / math.floor(math.sqrt(length)环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tall))
33 # 核算所需各队伍的头像数量
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, d环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tallirs, f九劫苍龙帝iles) in os.walk(path):
40 for pic_name in files:
41 # 添加头像读取不出来的反常处理
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 =环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tall creat_filepat客家人h()
58 save_avatar(avatar_dir)
59 joint_avatar(avatar_dir)

能够直接在运转程序文件,也能够用 Pyinstaller 文件打包后运转。这儿额定说一下 pyinstaller 打包的办法和闭坑攻略。

不要直接在系天合联盟统顶用 pyinstaller 打包,不然打包出来的 exe 文件会很大。主张在虚拟环境中打包,打包出来的 exe 文件会小许多, 10MB 左右。

虚拟环境创立很简略,简略说一下过程:

1 装置 pipenv 和 pyinstaller 包,用于后续创立虚拟环境和打包程序:

1pip install pipenv
2pip install pyinstaller # 已装置就不必装置了

2鼓励人的经典句子 挑选一个适宜吉祥金刚的目录作为 Python 虚拟环境,运转:

1pipenv install # 创立虚拟环境
2pipenv shell # 创立好后,进入虚拟环境

3 装置程序引证的库,上面程序引证了四个库:wxpy、math、os 和 PIL,一行代码就能够完结装置。

1pipenv install wxpy math os

4 这儿要额定留意 PIL重 的装置,现在不必 PIL 库,而是用 Pillow 库替代,所以装置 Pillow 库就行。但不要装置最新的 6.0.0 版别,不然或许会遇到各种过错,例如:PIL 无法辨认下载的 jpg 头像文件。

1OSError: cannot identify image file 

正确的装置办法是装置低版别,经测验装置 4.2.1 版别没有问题,环球时报,把 5000 微信老友头像组成到一张图片上是什么样,tall装置指令:

1pipenv install Pillow==4.2.1

5 然后打包程序就能够了:

1pyinstaller -F C:\Users\sony\Desktop\wechat_avatar.py 
2# 程序途径要改成你电脑上的途径
3# -F 表明生成单个 exe 文件,便利运转

运转如下:

运转指令,1 分钟左右若显现 successfully 字样表明程序打包成功:

接着在程序目录下找到 wechat_avatar.exe 文件,然后依照榜首种办法江苏教育考试院那样运转就行了。

以上便是用 Python 制造微信老友图片墙的办法。