目录:

0 引言

1 环境

2 代码实现

3 后记

0 引言

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

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

是不是很炫,而且这还是独一无二的,毕竟每个人的微信好友是不一样的。本文就教大家用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位好友。

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

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

代码已上传至Github:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Tool/Wechat_Photo_Wall

关注公众号「Python专栏」了解更多有趣的Python~

教你用Python制作微信好友背景墙

原文:https://www.cnblogs.com/moonhmily/p/11200162.html

python软件设计背景_教你用Python制作微信好友背景墙相关推荐

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

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

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

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

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

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

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

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

  5. 孩子学python用的笔记本电脑_教孩子学Python 后的一点感受

    先说一下孩子的情况.男孩儿,10岁,在学校上过scratch 的课:喜欢音乐和表演,是学校英文戏剧社成员:数学和语文成绩中等:贪玩儿,不会安排自己的事情.概括来说,就是一只普通孩子(和我小时候一样 L ...

  6. python爬表情包_教你用Python来爬取表情包网站的所有表情图片

    教你用Python来爬取表情包网站的所有表情图片 配置环境 安装Python 开发环境 3X系列 win + R 打开运行,输入cmd,输入python,进行验证是否安装Python win + R ...

  7. python朋友圈图片_教你用python将图片变成九宫格,打造高逼格朋友圈九宫格图片...

    python的出现,使很多困难的东西都简单化了,有时你在朋友圈看到朋友发的九宫格朋友圈,你会觉得很厉害,下面小编教你用python将一张图片变成九宫格,帮你打造高逼格朋友圈发文. 这个项目主要分为三个 ...

  8. python批量生成图表_教你用Python自动读取数据生成图表,产生的效益很可观

    厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...

  9. python人脸识别神器_教你用Python人脸识别自动开机,值得收藏

    这里将告诉您教你用Python人脸识别自动开机,值得收藏,具体操作方法:是不是厌烦了每次回家都要点击按钮打开电脑的操作? 你如果有看过我以前的推送,是不是厌烦了每次回家都要喊 "echo,t ...

最新文章

  1. 【ZooKeeper Notes 3】ZooKeeper Java API 使用样例
  2. www.lfd.uci.edu网站下载python库显示404解决办法
  3. TS - 问题解决力 - 上篇
  4. 汉语编程能获得诺贝尔奖
  5. 使用CLI扩展和重新平衡Couchbase集群
  6. 【原创】MapReduce编程系列之表连接
  7. HDU1232——通畅工程(并查集)
  8. latex填充段落之间的留白
  9. Spring Security 学习-环境搭建(一)
  10. TCP/IP 网络协议
  11. Hexo博客主题安装及Next主题个性化修改
  12. 嵌入式学习(三)—— STM32入门
  13. Linux常用命令--软件包管理之(服务管理)
  14. 锂电池升压-SX1308
  15. VirtualBox系统虚拟盘格式转换vdi/vhd/vmdk
  16. oracle查表字段长度,oracle中查询某张表中的字段名,字段类型,字段长度等信息...
  17. Clion远程Linux开发调试环境搭建
  18. 零基础 · 传说之下同人游戏制作教程
  19. 微机原理与接口技术——8255A的使用方法
  20. python应用程序无法正常启动0xc0000142_应用程序无法正常启动0xc0000142解决方法

热门文章

  1. 失业一年,学会跨境电商赚了50万,才知道:上班是真的耽误赚钱
  2. diff git 指定时间_Git diff 代码比较的高级技巧
  3. 使用numba加速python
  4. 国产蓝牙耳机评测:南卡和FIIL谁值得入手?
  5. 年轻小伙依靠刺绣增收致富
  6. 华为认证HCIE考试认证相关问题解答
  7. #4617. 逛公园
  8. 炉石传说亚服php,炉石传说:听说你是OTK?抱歉,老夫强力控制术,专治各种骚套路...
  9. 软件质量十大灵魂拷问
  10. 美味甜点网页 选择更改图片练习