本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于腾讯云 作者:Python编程与实战

( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )

前言

用 python 代码写了一个一键合成微信好友头像墙的程序,效果如下:

不会写代码?没关系!只要你会使用电脑就 ok!

因为除了用代码方式生成外,还建了一个 .exe 的程序,在电脑点击运行就完事了

下面分别详细的给大家讲解是如何实现的

程序使用教程

1.获取 .exe 程序

2.在windows上点击运行后,会弹出一个微信登陆的二维码,用手机微信扫描,确认登录

3.登陆成功后,程序会显示正在保存的头像,最后会在程序运行的目录生成一张 all.png 的图片

当看到 “所有的微信头像已合成,请查阅all.png!” 的时候,你要的头像墙就在 [wxImages] 文件夹里面

代码教程

代码其实很简单,主要是做起来觉得很有意义,如果你会python基础,再加上下面的讲解,你也可以的!

首先新建一个虚拟环境。为什么要虚拟环境?怎么建虚拟环境? 我之前的文章有写,去历史消息翻翻就能找到

虚拟环境

虚拟环境的名字随意取,我取的是 [“wx”]

在pycharm 中导入刚才建好的虚拟环境

3.需要安装的库:

wxpy 用来操作微信的,除了获取头像,还能给好友发消息,具体可查看官方文档 pillow <=4.2.1 处理头像 pyinstaller

将代码打包成 .exe 程序的

接下来就是写代码了

微信登陆部分代码

1@staticmethod2 defget_image():3 path = os.path.abspath(".") #当前目录

4 bot = Bot() #机器人对象

5 friends = bot.friends(update=True)6 dirs = path + "\\wxImages" #微信头像保存的路径

7 if notos.path.exists(dirs):8 os.mkdir("wxImages")9

10 index =011 for friend infriends:12 print(f"正在保存{friend.nick_name}的微信头像")13 friend.get_avatar(dirs + "\\" + f"{str(index)}.jpg")14 index += 1

15

16 return dirs #合成头像的时候需要用到

合成图像代码

1@staticmethod2 defcomposite_image(dirs):3 images_list =os.listdir(dirs)4 images_list.sort(key=lambda x: int(x[:-4])) #根据头像名称排序

5 length = len(images_list) #头像总数

6 image_size = 2560 #

7 #每个头像大小

8 each_size = math.ceil(image_size /math.floor(math.sqrt(length)))9 lines = math.ceil(math.sqrt(length)) #列数

10 rows = math.ceil(math.sqrt(length)) #行数

11 image = Image.new('RGB', (each_size * lines, each_size *rows))12 row =013 line =014 os.chdir(dirs) #切换工作目录

15 for file in images_list: #遍历每个头像

16 try:17with Image.open(file) as img:18 img =img.resize((each_size, each_size))19 image.paste(img, (line * each_size, row *each_size))20 line += 1

21 if line == lines: #一行填满后开始填下一行

22 line =023 row += 1

24 exceptIOError:25 print(f"头像{file}异常,请查看")26 continue

27

28 img = image.save(os.getcwd() + "/all.png") #将合成的头像保存

29 if notimg:30 print('所有的微信头像已合成,请查阅all.png!')

核心代码完成后,将两部分合一起再导入需要的包,就完事了

源码在此

1#coding: utf-8

2from wxpy importBot, Chat

3importmath

4importos

5from PIL importImage67classWxFriendImage(Chat):8@staticmethod9 defget_image():10 path = os.path.abspath(".")11 bot = Bot() #机器人对象

12 friends = bot.friends(update=True)13

14 dirs = path + "\\wxImages"

15 if notos.path.exists(dirs):16 os.mkdir("wxImages")17

18 index =019 for friend infriends:20 print(f"正在保存{friend.nick_name}的微信头像")21 friend.get_avatar(dirs + "\\" + f"{str(index)}.jpg")22 index += 1

23

24 returndirs25

26@staticmethod27 defcomposite_image(dirs):28 images_list =os.listdir(dirs)29 images_list.sort(key=lambda x: int(x[:-4])) #根据头像名称排序

30 length = len(images_list) #头像总数

31 image_size = 2560

32 #每个头像大小

33 each_size = math.ceil(image_size /math.floor(math.sqrt(length)))34 lines = math.ceil(math.sqrt(length)) #列数

35 rows = math.ceil(math.sqrt(length)) #行数

36 image = Image.new('RGB', (each_size * lines, each_size *rows))37 row =038 line =039os.chdir(dirs)40 for file inimages_list:41 try:42with Image.open(file) as img:43 img =img.resize((each_size, each_size))44 image.paste(img, (line * each_size, row *each_size))45 line += 1

46 if line ==lines:47 line =048 row += 1

49 exceptIOError:50 print(f"头像{file}异常,请查看")51 continue

52 img = image.save(os.getcwd() + "/all.png")53 if notimg:54 print('所有的微信头像已合成,请查阅all.png!')

55defmain():56 dirs =WxFriendImage.get_image()57WxFriendImage.composite_image(dirs)

58if __name__ == '__main__':59 main()

可以将代码复制到自己的编译器里面运行,效果是一样的。

至于打包成 .exe的程序就更简单了

在命令行中运行下面的命令即可

1pyinstaller -F F:\wx\wx.py

运行成功后,会在倒数第二行显示生成程序的保存路径

好了,以上就是两种用python合成微信好友头像的方法

合成之后,可以发到自己的朋友圈,让别人来找找自己的头像在哪,顺便自己还能装个逼,哈哈~`

python朋友圈头像_用python一键生成头像墙,将你微信好友头像全部收集起来相关推荐

  1. python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使 ...

  2. python 朋友圈评论_用Python发一个高逼格的朋友圈【附代码】

    前阵子在网上看到这个有趣的教程,马上就来实践学习一下,并提供给有需要的朋友学习. 昨晚就敲了代码并且发了朋友圈实验了一下,用Candice女神镇楼,效果如下: 效果还不错吧?接下来马上操作一下. 安装 ...

  3. python朋友圈数据分析_基于Python的微信朋友圈数据可视化分析之地点

    前提 朋友圈的相关数据请参照上一篇文章<基于Python的微信朋友圈数据可视化分析之个性签名>获取,本篇文章默认需要的数据已经下载保存至本地的 csv 文件中了. 将好友的地点按照省份进行 ...

  4. python朋友圈表白_备战520|Python花式表白的几种姿势

    大家好,520它又要来了 所以今天的主题是粉色的 为了各位秃头程序员不再头疼 本文给大家介绍几种用Python表白的姿势 绝不是画个爱心曲线那么简单- . ? 属于TA的词云 用Python将你们的  ...

  5. python朋友圈表白_情人节「告白生成器」来了!这个AI能让偶像对你说情话,过于真实!...

    重磅干货,第一时间送达 情人节将至,当其他人还在苦思冥想如何准备情人节礼物时,我却已经收到了我最喜欢的idol说给我的情话视频-不仅如此,我还用自己的照片说出了亲爱的ta最喜欢的告白台词,究竟是什么技 ...

  6. python训练营朋友圈留言_用Python发一个高逼格的朋友圈【附代码】

    今天二胖要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是二胖发的一个朋友圈 切图前是 ...

  7. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  8. python发朋友圈突破朋友圈限制_用Python发一个高逼格的朋友圈

    今天Aimee要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是我发的一个朋友圈 切图 ...

  9. python朋友圈图片_用Python发一个高逼格的朋友圈

    原标题:用Python发一个高逼格的朋友圈 今天要给大家介绍一个Python库:PIL(Python Image Library) 下面我们用一个实际的例子,看看50行python代码可以做什么神奇的 ...

  10. python朋友圈数据分析_第7天|16天搞定Python数据分析,盗墓笔记重现

    词云,又称文字云,是由词汇组成类似云的彩色图形.网络上好多漂亮的词云图,好多人以为是用PS软件P出来的,其实不是的,它们是用Python生成的.而且生成的方法还挺简单的,用Python开源的词云库就可 ...

最新文章

  1. 可测试性如何帮助团队提升效率
  2. 从零开始的AI·机器学习の基本概念
  3. 家装强电弱电布线图_家装水电安装技巧?水电验收技巧?
  4. Java技术:干掉 XML配置文件,新出的 Fluent Mybatis 技术真香!
  5. 如何在asterisk中限制呼叫路数?
  6. 谷歌暗示android wear未来或兼容ios系统!腾讯,传谷歌今年5月将推出iOS版本Android Wear...
  7. win7 iis php5.3,win7 下安装 iis7.5+php5.3的配置方法(图文)
  8. 步步为营VS 2008 + .NET 3.5(2) - VS 2008新特性之JavaScript Intellisense and Debugging
  9. IOS开发-jqeurey mobile
  10. 不能创建对象qmdispatch_关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法...
  11. linux nvidia显卡驱动安装教程,LINUX的NVIDIA显卡驱动安装
  12. 微型计算机拆卸步骤,《微型计算机拆卸》PPT课件.ppt
  13. imo教我们的互联网思维9大玩法
  14. Python: 进行one-hot编码
  15. [转] Boost算法
  16. 大话西游2同一个账号同一个服务器,大话西游2:服务器合并你是否支持?老玩家告诉你合服后的影响!...
  17. C/C++ 使用信号量控制线程运行顺序
  18. 如何测试 tpc-c
  19. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇
  20. 地方门户类网站建设解决方案

热门文章

  1. QT——使用QMediaPlayer播放视频
  2. 自制汉字字库,识别汉字(四)(实用篇)
  3. 【语音识别】基于matlab GUI MFCC+VAD端点检测智能语音门禁系统【含Matlab源码 451期】
  4. INTEL CPU 本子 列表 看你的是否支持虚拟化(是否采用了 Intel VT技术)
  5. 戴尔E6420加装固态硬盘经验分享
  6. python 读取发票内容,在窗口中显示并保存到excel文件中
  7. 小学生C++编程基础 课程10
  8. Excel使用经验——Excel连接Oracle,发生3706错误的解决办法
  9. ROS::差速运动模型机器人运动控制
  10. 卡尔曼滤波器公式推导