前聊天刷朋友圈,晒了一张下面的照片,微信好友墙,一张大图片,展示了自己所有好友的照片!

效果图如下,出于隐私,这里作了模糊处理。

是不是很炫,而且这还是独一无二的,毕竟每个人的微信好友是不一样的。本文就教大家用Python来实现这种效果。

1 环境

操作系统:Windows

Python版本:3.7.3

2 代码实现

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

准备工作

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

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

获取并存储好友头像信息

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

# 初始化机器人,扫码登陆微信,适用于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文件夹中,看到保存下来的微信好友头像的图片。

生成微信好友墙

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

首先设定好微信好友墙的尺寸,使用 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:continueelse:# 重新设置图片的大小img = img.resize((50, 50), Image.ANTIALIAS)# 将图片粘贴到最终的照片墙上image.paste(img, (x * 50, y * 50))# 设置每一行排13个图像x += 1if x == 13:x = 0y += 1
# 保存图片为WeChat_Friends.jpg
img = image.save(curr_dir + "WeChat_Friends.jpg
代码执行后,最终生成的效果图如下:

(这里展示的图片做了模糊处理)

3 后记

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

大家可根据自己实际情况,自行调整尺寸参数,以达到最佳效果。大家可以动手试一下啦!制作自己独一无二的照片墙吧!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69923331/viewspace-2655468/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69923331/viewspace-2655468/

用Python 制作微信全家福,这么神奇的吗?相关推荐

  1. Python 制作微信全家福,你就是朋友圈最亮的仔!

    目录:0 引言  1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这 ...

  2. Python 制作微信全家福

    https://mp.weixin.qq.com/s?__biz=MzU0OTU5OTI4MA==&mid=2247487008&idx=2&sn=8621ad10badb90 ...

  3. 用python制作生日蛋糕图片大全_Python 制作微信全家福,你就是朋友圈最亮的仔!...

    原标题:Python 制作微信全家福,你就是朋友圈最亮的仔! 目录:0 引言 1 环境2 代码实现3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出 ...

  4. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  5. 利用Python制作微信机器人(三)实现爬取JD商品价格

    从前两篇的博客来看,目前已经实现了机器人单向给微信发消息,和与机器人进行交互式发消息,详情如下: 利用Python制作微信机器人(一)机器人单向发消息 利用Python制作微信机器人(二)与机器人进行 ...

  6. 利用Python制作微信跳一跳外挂,微信好友装逼神器!

    导语 前几天在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,进群:711944363 获取微信跳一跳源码! 演示工具 电脑系统:W ...

  7. python表白代码照片墙-如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  8. python制作微信个人二维码_如何用Python制作微信好友个性签名词云图

    前言 上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来. 1.环境说明 Win10 系统下 Python3,编译器是 ...

  9. 利用Python制作微信机器人(二)

    上次写了利用Python制作微信机器人,其中只实现了通过api来控制微信机器人来给自己发送消息,具体详情可查看: 利用Python制作微信机器人(一) 本篇博客主要编写如何是实现给微信机器人发送消息, ...

最新文章

  1. windows server2003 升级到windows server2012
  2. ***微信 该连接无法访问问题解决办法
  3. 上海15岁女高中生蝉联“最年轻科学家”
  4. 宝塔需在php设置中安装redis扩展,wordpress开启Redis扩展教程
  5. pca算法介绍及java实现_PCA算法原理及实现
  6. 【华为云专家原创】 服务注册与发现如何满足服务治理?
  7. 如何释放hdfs中的续租_装修中甲醛如何高效释放
  8. ArcGIS水文分析实战教程(3)DEM数据准备
  9. OpenGL ES总结(四)OpenGL 渲染视频画面
  10. Fragstats4.2之计算景观格局指数(一)
  11. 总结Android系统启动完整流程(六)
  12. 基于正则表达式(python)对东方财富网上证指数吧爬虫实例
  13. C#根据工作经验来谈谈面向对象
  14. ubuntu禁止自动锁屏
  15. cropper:图片裁剪工具
  16. 毕设 JAVA.JSP网上学习答疑系统论文
  17. 2021-07-05
  18. python 网络运维框架scape_scape独立层,无封装
  19. 笑话大全查询易语言代码
  20. 数据结构编程回顾(七)航班信息的查询与检索

热门文章

  1. maven打包动态替换配置文件属性
  2. 国内国外Dns服务器大全
  3. Navicat for MySQL 新建数据库设置数据库编码
  4. Centos6.5编译安装zabbix2.2通过snmp协议监控路由器
  5. ansys2020R1软件Workbench linux版本安装教程 超详细安装教程
  6. ORM是什么,ORM的优缺点
  7. 使用OBS推RTMP流
  8. AcWing 883. 高斯消元解线性方程组 (高斯消元)
  9. CSUST 4001-你真的会加法吗?(不进位加法-字典树)
  10. 小事记-- Pr 打开显示“不支持的视频驱动程序”