我们来一张微信好友头像全家福吧

当我逛简书的时候(偶尔也要娱乐一下),突然看到一篇非常有趣的文章——微信好友全头像.于是我就花了一点时间娱乐一下自己。

前期准备

首先你需要安装了Python3,

然后确保自己安装了以下库:

  • itchat: API for Wechat. 微信个人号接口(支持文件、图片上下载)、微信机器人及命令行微信。三十行即可自定义个人号机器人
  • pillow: Python的图片操作库

安装代码:

pip3 install itchat pip3 install pillow

原理

使用itchat访问微信网页客户端,接着爬通讯录好友的头像的图片,之后使用PIL对图片进行拼接,最后用itchat把结果发送到文件助手。

itchat可以好好折腾一下,及时回复男/女朋友的信息,说不定就解决了一场危机。

代码:

源代码源自简书作者[罗罗攀].
我在源代码部分增加了为指定目标文件夹部分filepath,并增加注释行,便于理解。

# 导入itchat用于登录微信,导入math用于计算图片大小
# 导入PIL用于图片修剪和拼接, 导入os用于获取下载的图片信息
import itchat
import math
import PIL.Image as Image
import os

# 修改filepath为指定的目录
filepath = "存放图片的目录"

# 登录,如果你是Windows,用下面这行代码,然后注释Linux
itchat.auto_login()
# 如果你用的是Linux,用下面这行代码,然后注释Windows
itchat.auto_login(enableCmdQR=1)

# 读取好友
friends = itchat.get_friends(update=True)[0:]
user = friends[0]["UserName"]

# 获取好友头像
num = 0
for i in friends:
    img = itchat.get_head_img(userName=i["UserName"])
    fileImage = open(filepath + "/" + str(num) + ".jpg","wb")
    fileImage.write(img)
    fileImage.close()
    num += 1

# 利用os.listdir从文件路径中读取存放的图片
ls = os.listdir(filepath)
# 根据分辨率,定义图片大小
each_size = int(math.sqrt(float(640*640)/len(ls)))
lines = int(640/each_size)
image = Image.new('RGBA',(640,640))
x = 0
y = 0
# 修改源图片尺寸,并拼接
for i in range(0,len(ls) + 1):
    try:
        img = Image.open(filepath + "/" + str(i) + ".jpg")
    except IOError:
        print("Error")
    else:
        img = img.resize((each_size, each_size), Image.ANTIALIAS)
        image.paste(img, (x * each_size, y * each_size))
    x += 1
    if x == lines:
        x = 0
        y += 1
# 保存图片
image.save(filepath + "/" + "all.jpg")
# 用文件助手发送到手机微信端
itchat.send_image(filepath +"/"+"all.jpg","filehelper")

运行方法:

将上述代码保存为friends.py,然后在终端下用python friends.py运行就好了。

效果图

最后放上效果图,为了美观,我删除了部分头像。有没有看到自己的头像呢?

图片[1]-我们来一张微信好友头像全家福吧-夏末浅笑

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发
    头像
    欢迎您留下宝贵的见解!
    提交
    头像

    昵称

    取消
    昵称表情代码图片

      暂无评论内容