1. 首页
  2. Python编程

一键生成微信好友全家福照片

本期为大家分享如何一键生成微信好友全家福

效果图如下:

一键生成微信好友全家福照片

近日,朋友圈经常刷屏的一张微信好友全家福的图片,是由程序员 @Sunbelife 做的一款好用的工具,让你一键生成「微信好友全家福」,如上图所示 。

一键生成微信好友全家福照片

点击运行程序后,就会弹出一个二维码,你需要用手机微信扫一扫,并点击登陆,然后程序就会自动抓取微信的好友图像,抓取的时间长短,主要取决于个人的微信好友数量,比如小编的好友就有5000人,需要抓取1小时以上。下面是抓取过程中的截图 。

一键生成微信好友全家福照片

抓取完成后,会在目录中生成一张图片all.jpg的照片墙 。

一键生成微信好友全家福照片

Python代码如下:

from wxpy import *
import math
import PIL.Image as Image
import os
import sys
import shutil
## 获取文件所在的绝对路径
def get_dir(sys_arg):
	sys_arg = sys_arg.split("/")
	dir_str = ""
	count = 0
	for cur_dir in sys_arg:
		if count == 0:
			count = count + 1
		if count == len(sys_arg):
			break
		dir_str = dir_str + cur_dir + "/"
		count = count + 1
	return dir_str
curr_dir = get_dir(sys.argv[0])
bot = Bot()

# 机器人账号自身
myself = bot.self
my_friends = bot.friends(update=True)

if not os.path.exists(curr_dir + "group-images/"):
	os.mkdir(curr_dir + "group-images/")

count = 0
for friend in my_friends:
	print(friend.nick_name)
	friend.get_avatar(curr_dir + "group-images/" + str(count) + ".jpg")
	count = count + 1

# 获取下载的头像文件
ls = os.listdir(curr_dir + 'group-images')

# 去除非 .jpg 文件
for filter_ls in ls:
	if ".jpg" in filter_ls:
		continue
	else:
		ls.remove(filter_ls)
		
# 排序
ls.sort(key=lambda x:int(x[:-4]))

# 头像墙尺寸
image_size = 2560

each_size = math.floor(image_size/math.floor(math.sqrt(len(ls))))
x_lines = math.ceil(math.sqrt(len(ls)))
y_lines = math.ceil(math.sqrt(len(ls)))
image = Image.new('RGB', (each_size * x_lines, each_size * y_lines))

x = 0
y = 0

for file_names in ls:
	try:
		img = Image.open(curr_dir + "group-images/" + file_names)
		print("正在处理" + file_names.split('.jpg')[0] + "/" + str(len(ls)))
	except IOError:
		continue
	else:
		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
				
img = image.save(curr_dir + "all.jpg")


try:
	shutil.rmtree(curr_dir + "group-images/")
	print("收尾,清理临时文件")
except FileNotFoundError:
	print("没什么好删的")

print("!!!\n生成完毕了,放在了目录" + curr_dir + ",去看看吧。")

 

不知道你学会了吗?这可以把这张图发到朋友圈去看看,看看有多少好友给你点赞!

软件获取

公众号后台聊天框回复【423

一键生成微信好友全家福照片

文章声明:发布者:栈长,转转请注明出处,谢谢!

发表评论

登录后才能评论

评论列表(6条)

QR code