一键拼接微信好友头像

使用wxpy获取微信好友的头像,然后拼接成一张图片,一键完成。并使用pyinstaller生成可执行文件,使用更方便。

# coding="utf-8"
from wxpy import *
import math
from PIL import Image
import os

def creat_filepath():
    """创建头像存放文件夹"""
    avatar_dir  = os.getcwd() + "\\wechat\\"
    if not os.path.exists(avatar_dir ):
        os.makedirs(avatar_dir )
    return avatar_dir 

def save_avatar(avatar_dir):
    """初始化机器人,扫码登入"""
    bot = Bot()
    friends = bot.friends(update=True)
    num = 0
    count = len(friends)
    print("您共有 %d 个好友!" % count)
    for friend in friends:
        friend.get_avatar(avatar_dir + "\\" + str(num) + ".jpg")
        num += 1
        percent = int(100 * num / count)
        progress(percent)
    print("")


def joint_avatar(path):
    """拼接头像"""
    # 1、获取文件夹内的头像数目
    length = len(os.listdir(path))
    # 2、设置画布大小
    image_size = 2560
    # 3、设置每个头像的大小
    each_size = math.ceil(2560 / math.floor(math.sqrt(length)))
    # 4、计算所需各行列的头像数目
    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, (each_size * x, each_size * y))
                    x += 1
                    if x == x_lines:
                        x = 0
                        y += 1
            except IOError:
                print("头像读取失败")
    img = image.save(os.getcwd() + "/wechat.png")
    print("拼接好友头像完成")

def progress(percent, width=30):
    if percent >= 100:
        percent = 100
    show_str = ('正在下载好友头像:[%%-%ds]' % width) % (int(width * percent/100)*"#")
    print('\r%s %d%%' % (show_str, percent), end='')
    
if __name__ == '__main__':
    avatar_dir = creat_filepath()
    save_avatar(avatar_dir)
    joint_avatar(avatar_dir)

运行结果:

命令行输入:pyinstall -F G:/xxxx/xxxx/WeChat.py生成可执行文件

在执行过程中可能会遇到下面的情况:Cannot find existing PyQt5 plugin directories ,具体截图如下

解决办法:

  • 找到 /Library/plugins路径下的PyQt5文件夹,将里面的dll动态库pyqt5qmlplugin.dll复制出来
  • 按照错误提示的路径,一个一个的新建文件夹,形成目录C:\qt5b\qt_1524647842210_h_env\Library\plugins,将刚才复制出来的dll动态库拷贝进去即可

最后生成可执行文件如下:

双击WeChat.exe,然后扫码登录即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值