引言

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

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

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

环境

操作系统:Windows

Python版本:3.7.3

代码实现

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

准备工作

在这里,我们登录微信获取好友信息,使用的是 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:

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

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

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

后记

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

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

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

代码已上传至Github

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python制作微信好友背景墙教程(附完整代码)

本文地址: http://www.cppcns.com/jiaoben/python/265763.html

python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)相关推荐

  1. 最炫python表白代码_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

  2. python软件设计背景_教你用Python制作微信好友背景墙

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

  3. python微信图标制作_Python 一键制作微信好友图片墙的方法

    wxpy.pyinstalller 库的使用. 上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症 ...

  4. Python 一键制作微信好友图片墙

    上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做 ...

  5. 【仿真】Carla之收集数据快速教程 (附完整代码)

    收集过程可视化展示,随后进入正文: 参考与前言 看到仿真群对这类任务下(用carla收集数据然后再做训练等) 需求量大,顺手马上写一个好了,首先收集数据需要考虑清楚: 收集什么数据,需要什么样的数据格 ...

  6. 吴恩达机器学习python实现(6):SVM支持向量机(文末附完整代码)

    所有的数据来源:链接:https://pan.baidu.com/s/1vTaw1n77xPPfKk23KEKARA 提取码:5gl2 1 Support Vector Machines 1.1 Pr ...

  7. python爬虫好友图片_Python爬取所有微信好友头像,制作微信好友图片墙

    今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定. 核心是利用三个库:wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinsta ...

  8. 只需四步,让你成为朋友圈的焦点----Python制作微信好友头像墙

    今天带给大家一波实力干货,让你分分钟成为朋友圈的红人.焦点! 先来张效果图感受一下! 怎么样,是不是很爽! 链接在这↓ 链接:https://pan.baidu.com/s/1qhRkkLPLdZqE ...

  9. python编写性别比例_Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】...

    本文实例讲述了Python分析微信好友性别比例和省份城市分布比例的方法.分享给大家供大家参考,具体如下: 安装itchat pip install itchat 使用 新建wxfx.py,拷贝以下代码 ...

最新文章

  1. 让Jexus支持高并发请求的优化技巧
  2. 【记录】 安装qflow on ubuntu 16.04
  3. 关于android Activity生命周期的说明
  4. SAP CRM系统里关于订单货币单位为日元的一些调试和配置关键点
  5. [html] 如何给页面添加追加右键菜单(原右键菜单功能保持不变)
  6. 如何设置Mac允许远程电脑SSH登录?
  7. 电磁场理论复习笔记-第一章(下)
  8. LTE 调制与解调——QPSK,16QAM,64QAM误码率比较
  9. GIS数据转换器(栅格)(栅格向矢量网格和栅格向栅格的转换)
  10. html图片的自动轮播js,js实现轮播图效果 纯js实现图片自动切换
  11. 华为网络设备-二层Eth-trunk配置
  12. python背单词程序设计_python背单词小程序
  13. [科幻]Java版三体中黑暗森林法则的猜想
  14. 虚拟 DOM 是什么 有什么优缺点
  15. html5 选择金额样式,[JavaScript] 数字金额大写转换 v2
  16. 哈工大csapp大作业报告
  17. 大数据导论学习通考试习题
  18. CC2530 常用寄存器
  19. 深度学习 Day 15——利用卷神经网络实现好莱坞明星识别
  20. Pattern Hatching讲了什么

热门文章

  1. 摊牌了!我要手写一个“Spring Boot”
  2. BL0940电能计量 设计
  3. 阿里巴巴助攻腾讯破6.2亿微商传销第一大案!涉案公众号粉丝2400
  4. Win11找不到显卡控制面板怎么办?
  5. Mybatis-There is no getter for property named 'tj' in 'class
  6. 一个简单的UDP回显服务器
  7. 合伙的债务应如何承担
  8. 挖掘Dark Sky Maps(热的要死后,疯传的一个气温地图网站)
  9. 惊!用python将数据存到txt文件中发现顺序乱排或缺斤少两
  10. ios直播开发基础,推流协议及流程