10分钟教你用python下载和拼接微信好友头像图片

简介: 10分钟教你用python下载和拼接微信好友头像图片

相信微信大家是用得再多也不过了。那么,对于python+微信,又能玩出什么新的花样呢?下面小编就给大家带来一个好玩的东西。用python下载所有的微信好友的头像,然后拼接成一张大图。这样,大家就可以转载到朋友圈装XY了。哈哈。

还是先给大家看看效果图如何。毕竟无图言X。

微信图片_20220421145421.gif

   效果图:

微信图片_20220421145425.jpg


PS:图侵删。这不是小编的微信哈……


好了废话不多说,看看我们是怎么一步一步做出来的吧。


下载微信好友头像

第一步当然是下载微信好友的头像,然后才能进行拼接。这里我们用到了itchat这个python的库。关于这个库,更多好玩的东西我们在后期会推出的,大家敬请关注and期待就好了。先看代码:


1itchat.auto_login()
 2for friend in itchat.get_friends(update=True)[0:]:
 3    #可以用此句print查看好友的微信名、备注名
 4    print(friend['NickName']+"("+friend['RemarkName']+")")
 5    img = itchat.get_head_img(userName=friend["UserName"])
 6    path = headImgPath+friend['NickName']+"("+friend['RemarkName']+").jpg"
 7    try:
 8        with open(path,'wb') as f:
 9            f.write(img)
10    except Exception as e:
11        print(repr(e))


代码灰常简单。首先我们调用itchat.auto_login()进行微信登陆。


微信图片_20220421145433.jpg


扫码登陆成功以后,我们再获取好友,然后获取头像,再配置一下文件保存路径,最后把头像写入文件里面。是不是简单到难以置信?


微信图片_20220421145437.jpg


拼接好友头像

拼接我们用了PIL库里面的Image模块。代码看下面:


1pathList = []
 2# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。
 3for item in os.listdir(headImgPath):
 4    imgPath = os.path.join(headImgPath, item)
 5    pathList.append(imgPath)
 6
 7total = len(pathList)#total是好友头像图片总数
 8line = int(sqrt(total))#line是拼接图片的行数(即每一行包含的图片数量)
 9NewImage = Image.new('RGB', (128*line,128*line))
10x = y = 0
11for item in pathList:
12    try:
13        img = Image.open(item)
14        # Image.ANTIALIAS:平滑滤波。对所有可以影响输出像素的输入像素进行高质量的重采样滤波,以计算输出像素值。
15        img = img.resize((128,128),Image.ANTIALIAS)
16        NewImage.paste(img, (x * 128 , y * 128))
17        x += 1
18    except IOError:
19        print("第%d行,%d列文件读取失败!IOError:%s" % (y,x,item))
20        x -= 1
21    if x == line:
22        x = 0
23        y += 1
24    if (x+line*y) == line*line:
25        break
26NewImage.save("final.jpg")


我们先是用os.listdir获取了所有头像的路径保存到pathList里面。接着创建一个大图片,将大图片划分为n个小方格,再往小方格里面塞好友头像。需要注意的是,在塞好友头像前,需要对头像进行缩略变小才能塞进去。最后,生成最终文件。在当前目录下即可找到final.jpg。即为我们的成品。大家就可以拿着它去朋友圈装逼了~


微信图片_20220421145441.jpg


本来想弄一个现成的供大家下载使用,不过想想还是算了。大家直接下载python源码运行即可。

相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
267 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
30 1
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
140 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
1月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
28 1
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
401 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
20 1
|
1月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
643 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
1月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
42 0
下一篇
无影云桌面