微信好友墙头像合集一键自动生成图片

软件 459
4个月前
微信好友墙,就是在一张大图片中展示所有微信好友的头像,还是独一无二的,毕竟每个人的微信好友是不一样的。然后你可以用这个图在朋友圈装逼了。 首先,请看效果图(已做迷糊处理)
微信好友墙头像合集一键自动生成图片

此程序为 Python 做的;这种图很早就有人玩过了,不过下面还是来说说怎么做出来,这样你也可以做一个自己微信好友的图片墙。

有两种方法,一种简单的,不用接触 Python 代码,一种稍微复杂点,需要写代码。

先说简单的方法

只需要两步:运行程序(下载地址在文章末尾)然后扫微信二维码就行了。

剩下的交给程序自己蹦跶,泡杯茶在电脑前等待几分钟左右就可以得到图片,具体的等待时间视微信好友数量而不同,我近 2000 好友,用时 10 分钟左右。

微信好友墙头像合集一键自动生成图片

几分钟后就可以得到上面的图片了。

 


 

你要感兴趣怎么实现的,可以往下看用 Python 代码怎么实现的,代码不长,60 行就可以搞定。

1 环境

操作系统:Windows

Python 版本:3.7.3

2 代码实现

我们需要首先需要获取好友的头像信息,接下来处理图像并完成图像的拼接。

2.0 准备工作

在这里,我们登录微信获取好友信息,使用的是 wxpy 模块;处理并生成最终的图像借助 PIL 模块。因为都是第三方模块,如环境中没有可以使用 pip 进行安装。另外涉及路径的处理等,我们需要导入 os 模块和 sys 模块。


from wxpy import *
import PIL.Image as Image
import os
import sys

2.1 获取并存储好友头像信息

我们要获取微信好友的头像,首先需要登录微信


# 初始化机器人,扫码登陆微信,适用于Windows系统
bot = Bot()

# # Linux 系统,执行登陆请调用下面的这句
# bot = Bot(console_qr=2, cache_path="botoo.pkl"
在获取好友头像信息之前,我们得先在本地创建一个目录,用于后续存储好友头像的文件。

# 获取当前路径信息
curr_dir = get_dir(sys.argv[0])
# 如果 FriendImgs 目录不存在就创建一个
if not os.path.exists(curr_dir + "FriendImgs/"):
os.mkdir(curr_dir + "FriendImgs/")
接下来就是获取友头像信息,并将其存储在本地创建的目录中。

my_friends = bot.friends(update=True)
# 获取好友头像信息并存储在 FriendImgs 目录中
n = 0
for friend in my_friends:
friend.get_avatar(curr_dir + "FriendImgs/" + str(n) + ".jpg")
n = n + 1

这时你就可以在本地 FriendImgs 文件夹中,看到保存下来的微信好友头像的图片。

2.2 生成微信好友墙

制作微信好友墙,就像以前的大字报,把我们下载的好友头像逐一贴上去即可。

首先设定好微信好友墙的尺寸,使用 Image.new() 方法。


image = Image.new("RGB", (650, 650))

接下来,我们需要逐个打开微信好友的图片,使用 Image.open() 方法。


img = Image.open(curr_dir + "FriendImgs/" + file_names)

将微信头像图片,重置为 50*50 像素尺寸的小图,使用 img.resize() 方法。


img = img.resize((50, 50), Image.ANTIALIAS)

然后将图片黏贴到我们的照片墙中,使用 image.paste() 方法。


image.paste(img, (x * 50, y * 50))

最后将制作完成的照片墙保存下来,使用 image.save() 方法。


img = image.save(curr_dir + "WeChat_Friends.jpg")

现在我们将本小节中代码整合到一起,如下所示:


# 准备生成微信好友头像墙的尺寸
image = Image.new("RGB", (650, 650))

# 定义初始图片的位置
x = 0
y = 0

# 获取下载的头像文件
curr_dir = get_dir(sys.argv[0])
ls = os.listdir(curr_dir + 'FriendImgs')

# 遍历文件夹的图片
for file_names in ls:
try:
# 依次打开图片
img = Image.open(curr_dir + "FriendImgs/" + file_names)
except IOError:
continue
else:
# 重新设置图片的大小
img = img.resize((50, 50), Image.ANTIALIAS)
# 将图片粘贴到最终的照片墙上
image.paste(img, (x * 50, y * 50))
# 设置每一行排 13 个图像
x += 1
if x == 13:
x = 0
y += 1
# 保存图片为 WeChat_Friends.jpg
img = image.save(curr_dir + "WeChat_Friends.jpg)
3 后记

本文中设定照片墙尺寸为 650*650,而好友头像尺寸为 50*50,这样最终制作成的照片墙每行有 13 位好友,共计容纳 13*13 位好友。

大家可根据自己实际情况,自行调整尺寸参数,以达到最佳效果。大家赶快去生成自己独一无二的照片墙吧~!

好啦,本文所有内容就到这里结束啦。其实后面还可以衍生很多玩法,比如:心行墙、圆墙等。不过逻辑一样,就是代码处理起来会比较麻烦。有兴趣的可以先自己试试。

下载地址
微信好友墙头像合集一键自动生成图片
标签: , , ,

相关文章

洛雪音乐助手-免费多平台聚合高品质音乐搜索试听下载软件支持WIN/MAC

[pdownload] 免费开源的音乐下载器「洛雪音乐助手」基于 Electron + Vue 开发…

307
2个月前
Adobe 2020系列软件中文版免费下载Win/Mac

[pdownload] 软件更新的内容网上有太多介绍,就不再复述。 Adobe2020系列所有版本不…

1,937
11个月前
NIK COLLECTION 摄影师必备PS效果滤镜

[pdownload] 快速制作炫丽图片,将强大的 Nik 插件集 (by Google) 融入你当…

674
11个月前

共有1条评论

评论本文
  • qq_avatar

    Elvis Cheng

    有用,试着玩一下

    2020-06-27 03:34
    回复