原标题:Python 制作微信全家福,你就是朋友圈最亮的仔!

目录:0 引言 1 环境2 代码实现3 后记

0 引言

前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像。

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

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

1 环境

操作系统:Windows

Python版本:3.7.3

2 代码实现

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

2.0 准备工作

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

fromwxpy import*

importPIL.Image asImage

importos

importsys

2.1 获取并存储好友头像信息

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

# 初始化机器人,扫码登陆微信,适用于Windows系统

bot = Bot

# # Linux系统,执行登陆请调用下面的这句

# bot = Bot(console_qr=2, cache_path="botoo.pkl"

在获取好友头像信息之前,我们得先在本地创建一个目录,用于后续存储好友头像的文件。

# 获取当前路径信息

curr_dir = get_dir(sys.argv[ 0])

# 如果FriendImgs目录不存在就创建一个

ifnotos.path.exists(curr_dir + "FriendImgs/"):

os.mkdir(curr_dir + "FriendImgs/")

接下来就是获取友头像信息,并将其存储在本地创建的目录中。

my_friends = bot.friends(update= True)

# 获取好友头像信息并存储在FriendImgs目录中

n = 0

forfriend inmy_friends:

friend.get_avatar(curr_dir + "FriendImgs/"+ str(n) + ".jpg")

n = n + 1

这时你就可以在本地FriendImgs文件夹中,看到保存下来的微信好友头像的图片。

2.2 生成微信好友墙

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

首先设定好微信好友墙的尺寸,使用 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')

# 遍历文件夹的图片

forfile_names inls:

try:

# 依次打开图片

img = Image.open(curr_dir + "FriendImgs/"+ file_names)

exceptIOError:

continue

else:

# 重新设置图片的大小

img = img.resize(( 50, 50), Image.ANTIALIAS)

# 将图片粘贴到最终的照片墙上

image.paste(img, (x * 50, y * 50))

# 设置每一行排13个图像

x += 1

ifx == 13:

x = 0

y += 1

# 保存图片为WeChat_Friends.jpg

img = image.save(curr_dir + "WeChat_Friends.jpg

代码执行后,最终生成的效果图如下:

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

3 后记

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

大家可根据自己实际情况,自行调整尺寸参数,以达到最佳效果。大家赶快去生成自己独一无二的照片墙吧!从此你就是朋友最亮的仔!

公众号后台回复「照片墙」即可获取本文全部代码。返回搜狐,查看更多

责任编辑:

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

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

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

  2. python仪表盘图片大全_python制作仪表盘图

    今天教大家用pyecharts画仪表盘 仪表盘 (Gauge) 是一种拟物化的图表,刻度表示度量,指针表示维度,指针角度表示数值.仪表盘图表就像汽车的速度表一样,有一个圆形的表盘及相应的刻度,有一个指 ...

  3. python设置背景图片大全_Python实例讲解 - tkinter canvas (设置背景图片及文字)

    Python实例讲解 -- tkinter canvas (设置背景图片及文字) 先来一个绘图: from Tkinter import * master = Tk() w = Canvas(mast ...

  4. c语言中生日蛋糕图片大全,简单生日蛋糕图片大全

    蛋糕是一种面食,通常是甜的,典型的蛋糕是以烤的方式制作出来.下面是学习啦为大家准备的简单生日蛋糕图片,希望可以帮助大家! 生日祝福语: 1.摇曳的烛光,点亮你的生日;深情的吟唱,寄予我无限的祝福;漫天 ...

  5. c语言中生日蛋糕图片大全,经典生日蛋糕图片大全

    经典生日蛋糕图片大全 生日当天,最具有代表性的莫过于生日蛋糕了.如果想要自己亲手制作一个蛋糕,那么蛋糕的造型就需要大家好好的研究了,以下是小编跟大家分享经典生日蛋糕图片,希望对大家能有所帮助! 生日蛋 ...

  6. c语言中生日蛋糕图片大全,关于生日蛋糕图片大全

    关于生日蛋糕图片大全 鸟语花香,欢声笑语,在这属于你的日子,舞出欢乐的节拍,唱出快乐的音符,乐出甜美的欢笑:祈福你心灵的深处,青春常驻,芳草永绿.以下是"生日蛋糕图片"希望能够帮助 ...

  7. SpringMVC实现微信链接分享到朋友圈显示图片功能微信JS-SDK调用步骤

    SpringMVC实现微信链接分享到朋友圈显示图片功能微信JS-SDK调用步骤 一.登录微信平台 login url:https://mp.weixin.qq.com/ name: your name ...

  8. python怎么批量爬取图片_Python制作批量爬取网络图片的方法

    Python制作批量爬取网络图片的方法 发布时间:2020-11-17 11:14:24 来源:亿速云 阅读:86 作者:小新 这篇文章给大家分享的是有关Python制作批量爬取网络图片的方法的内容. ...

  9. python爬虫爬图片教程_Python爬虫爬图片需要什么

    Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...

最新文章

  1. ASP.NET设置ie打印两法[转载]
  2. Linux下安全扫描工具Nmap用法详解
  3. 【BFS宽度优先搜索】
  4. python中configparser_python中confIgparser模块学习
  5. 教你搞定补码不恢复余数除法中够减和商的关系
  6. 杭电1260java实现
  7. (转)c# 扩展方法
  8. ES6-10 super、4种遍历方式、原型、symbol遍历
  9. 天池学习赛:工业蒸汽量预测5——特征优化
  10. 为什么Linux CFS调度器没有带来惊艳的碾压效果
  11. 【UE】UE4下载安装及测试demo
  12. Repast——Agent对象换成图标和显示属性问题
  13. 通过第三方平台超级鹰进行登录页面验证码识别
  14. VBA学习笔记之Range.Resize属性
  15. Excel VBA: 自动生成巡检报表并通过邮件定时发送
  16. 菜单栏点击显示二级菜单_显示完整菜单
  17. 【C++训练】 一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹.求它在第N次落地时共经过多少米?
  18. 水果店线下营销活动案例,水果店营销活动促销方案怎么做
  19. raid配置ssd为缓存_搞定INTEL快速存储技术(用SSD硬盘做缓存加速),再次更新!...
  20. 机器学习 | 吴恩达机器学习第六周编程作业(Python版)

热门文章

  1. 动态色调范围 (网络整理)
  2. cisco 华三 对接_h3c与cisco对接注意
  3. 网友曝西安一大学瞒学生群体盗办信用卡
  4. linux tcp repair及tcp热迁移
  5. 红队免杀培训第一章-不可执行的shellcode
  6. 03.好客租房------初始化项目[本系列必学章节]
  7. 上海高清卫星地图 百度卫星地图(含标签、道路信息、地名等数据叠加显示)
  8. Cuckoo Filter(布谷过滤器)
  9. 笔记:springboot-admin 整合spring security应用注册失败问题
  10. IT培训网:Web前端培训费用是多少