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

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

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

1 环境

操作系统:Windows

Python版本:3.7.3

2 代码实现

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

2.0 准备工作

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

from wxpy import *

import PIL.Image as Image

import os

import sys

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

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

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

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')

# 遍历文件夹的图片

for file_names in ls:

try:

# 依次打开图片

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

except IOError:

continue

else:

# 重新设置图片的大小

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

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

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

# 设置每一行排13个图像

x += 1

if x == 13:

x = 0

y += 1

# 保存图片为WeChat_Friends.jpg

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

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

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

3 后记

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

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

好啦,本文所有内容就到这里结束啦。其实后面还可以衍生很多玩法,比如:心行墙、圆墙等。不过逻辑一样,就是代码处理起来会比较麻烦。有兴趣的可以先自己试试,或者等我……

python制作微信个人二维码怎么做_如何用Python制作微信的好友背景墙?相关推荐

  1. 制作二维码怎么做?手把手教你制作生成二维码

    制作二维码怎么做?在我们的日常生活中总是会看到各色各样的二维码,二维码可以说在我们的生活中无处不在.我们除了会看到一些最简单二维码,还会看到一些好看样式的二维码.那么问题来了,二维码如何制作?这里小编 ...

  2. 视频图片加文字的二维码怎么做?教你在线制作二维码

    想要把视频.图片以及文字做成二维码的时候,要怎么操作呢?其实,方法非常的简单,只需要使用操作简单的二维码生成器(https://www.jzx.com/)就能够快速完成二维码制作的操作.下面,给大家分 ...

  3. 微信渠道二维码怎么做?微信公众号怎么做渠道二维码?

    因为公众平台没有生成渠道二维码功能,如果想要实现公众号的渠道二维码,可以用第三方平台微号帮提供的渠道二维码生成在线功能实现,渠道二维码主要用于统计各个渠道来源的粉丝,为公众号实现精准化推广,为公众号节 ...

  4. 企业微信个人二维码在哪里?会失效吗?

    当企业在使用企业微信营销时,员工每个月都需要完成一定的KPI,就需要将自己的个人二维码放在各处使用,那么如何生成企业微信个人二维码呢?二维码会失效吗? 前言 当企业使用企业微信移动办公时,每个员工都可 ...

  5. python制作微信二维码_Python提取支付宝和微信支付二维码的示例代码

    支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...

  6. 专属微信二维码python制作_教你使用Python制作酷炫二维码

    这篇文章讲的是如何利用python制作狂拽酷炫吊炸天的二维码,非常有趣哦! 可能你见过的二维码大多长这样: 稍微好看点的长这样: 普普通通,平平凡凡,没什么特色... 但,如果二维码长这样呢! 或者这 ...

  7. 使用Python制作酷炫二维码(myqr)

    使用Python制作酷炫二维码 本篇参考自微信公众号,二三四张图片有改博主知乎的链接哦,https://mp.weixin.qq.com/s/Fq6_KKeN5T28DbfyDsGYDw 平时你见到的 ...

  8. 企业微信渠道二维码如何制作?

    很多企业在做活动推广时会用到企业微信渠道二维码,既可以将客户引流到企业微信中进行统一管理,又可以看到渠道投放效果,一举两得. 前言 当企业员工邀请客户添加企业微信时,需要客户通过扫描企业微信二维码进行 ...

  9. ⭐️Python实用小工具之制作酷炫二维码(有界面、附源码)⭐️

    镇楼图 文章目录 写在前面 制作二维码 安装myqr库 myqr.run()参数详解 制作普通二维码 制作黑白背景二维码 制作彩色背景二维码 制作大边长二维码 制作动态二维码 解析二维码 tkinte ...

最新文章

  1. 计算机网络技术专业毕业大作业答案,计算机网络技术大作业考核要求A卷
  2. 16、ASP.NET MVC入门到精通——MVC过滤器
  3. C++Dynamic Array动态数组(附完整源码)
  4. java json lib 日期
  5. 一台路由器实现电信ITV与宽带共享上网
  6. 【干货分享】流程DEMO-补打卡
  7. Python学习笔记(十)—— 高级特性
  8. html无法显示null打开,js出现null错误的原因?
  9. 快来对号入座!四句话告诉你怎样的企业适用于移动平台
  10. 线程的创建以及线程的本质
  11. [数据结构] 伸展树(Splay Tree)原理及若干应用详解(无指针)
  12. 携程去哪儿合并可行性研究报告
  13. 谁再说“游戏没用”,就拿这个回怼他!
  14. 小程序 界面响应速度优化
  15. 详解比较好的音视频通话SDK开发包的技术要点
  16. 互联网(internet)、因特网(Internet)、万维网(World Wide Web)三者区别
  17. maya导出obj分组_maya2017怎么导入obj序列?
  18. 量子力学奇妙之旅-算符/薛定谔方程/概率流密度
  19. 8.1SQL概述与数据库定义
  20. python IP代理爬虫,download 代理IP

热门文章

  1. Linux网络——DNS域名解析服务
  2. Stroke:脑白质微结构完整性可预测脑卒中预后功能恢复情况
  3. Acrobat 删除pdf页面
  4. 吴恩达机器学习15-异常检测
  5. 华为路由器交换机常用命令(随时补充更新)
  6. excel更改日期格式无效_Excel日期不会更改格式
  7. C/C++ 光标:键盘上下键实现菜单移动
  8. 智能汽车能否真正实现无人驾驶,为什么?
  9. 三角形的缩放动画,不会做的看过来!
  10. 超好看的Nteam官网PHP程序源码