首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你微信好友头像形成指定的文字

手把手教你微信好友头像形成指定的文字

作者头像
程序员小藕
发布2020-07-28 17:49:01
1.1K0
发布2020-07-28 17:49:01
举报
文章被收录于专栏:程序员小藕程序员小藕

手把手教你微信好友头像形成指定的文字

实现-微信好友头像排列成文字

首先给你们看看实现出来的效果!

实现步骤解析:

1、点击单点单图:

2、输入相应文字和保存的文件夹:

3、点击获取微信头像并微信授权下载微信好友头像结束后直接点击输出文件就可以了

3、打开你输入的文件名称的输出文件:例如我输入的是RunWsh,那么文字对应头像图片在RunWsh_输出文件里

源码介绍:

核心是利用三个个库:

1 wxpy 库,用于获取好友头像然后下载
2 
3  
4 
5 Pillow 库,用于拼接头像
6 
7  
8 
9 Pyinstaller 库,用来打包 Python 程序成 exe 文件

程序通过三个函数实现,第一个 creat_filepath 函数生成图片下载文件路径,第二个 save_avatar 函数循环获取微信好友头像然后保存到本地,第三个 joint_avatar 函数就是把头像拼接成一张大图。

完整源码:

 1 # -*- coding: utf-8 -*-
 2 from wxpy import *
 3 import math
 4 from PIL import Image
 5 import os
 6 
 7 # 创建头像存放文件夹
 8 def creat_filepath():
 9     avatar_dir = os.getcwd() + "\\wechat\\"
10    if not os.path.exists(avatar_dir):
11        os.mkdir(avatar_dir)
12     return avatar_dir
13 
14 # 保存好友头像
15 def 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 # 拼接头像
26 def 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)))
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, dirs, files) 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 
56 if __name__ == '__main__':
57     avatar_dir = creat_filepath()
58    save_avatar(avatar_dir)
59    joint_avatar(avatar_dir)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 源码介绍:
  • 完整源码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档