前言

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

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

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()进行微信登陆。

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

拼接好友头像

拼接我们用了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。即为我们的成品。大家就可以拿着它去朋友圈装逼了~

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

欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:txpj。即可下载。

推荐文章:10分钟教你用Python做个打飞机小游戏超详细教程
推荐文章:10分钟教你用python打造贪吃蛇超详细教程

【python】10分钟教你用python下载和拼接微信好友头像图片的更多相关文章

  1. 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送

    01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...

  2. 10分钟教你用Python打造微信天气预报机器人

    01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...

  3. 10分钟教你用Python玩转微信之好友性别比例统计分析

    01 前言+效果展示 想必,微信对于大家来说,是再熟悉不过的了.那么,大家想不想探索一下微信上的各种奥秘呢?今天,我们一起来简单分析一下微信上的好友性别比例吧~废话不多说,开始干活. 结果如下: 02 ...

  4. 10分钟教你用Python玩转微信之抓取好友个性签名制作词云

    01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...

  5. 【python】10分钟教你用python如何正确把妹

    前言 今天没妹子约,刚好研究一下.如何用神奇的python打造一个把妹神器吧.看完这个,你们就能走向人生巅峰,迎娶白富美啦. 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可 ...

  6. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...

  7. 【python】10分钟教你用python一行代码搞点大新闻

    准备 相信各位对python的语言简洁已经深有领会了.那么,今天就带大家一探究竟.看看一行python代码究竟能干些什么大新闻.赶紧抄起手中的家伙,跟我来试试吧. 首先你得先在命令行进入python. ...

  8. 10分钟教你用Python实现微信自动回复

    01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...

  9. 【python】10分钟教你用Python做个打飞机小游戏超详细教程

    更多精彩尽在微信公众号[程序猿声] 我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类clas ...

随机推荐

  1. 页面中CSS的四种引入方式的介绍与比较

    转自:https://blog.csdn.net/qq_38689666/article/details/79039392 一:行内式 <p style="color:red" ...

  2. oracle用户和权限

    在oracle中,一个服务器上一般只有一个数据库.在一个数据库中,不同的用户项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,当一个用户想访问其它用户下的数据库对象时,必须由对方授予一定的权限 ...

  3. 安装oracle xe一些注意点

    主要是web管理数据的的端口8080端口的问题, 会和tomcat冲突 安装时把开启8080端口的tomcat启动了 占用8080端口就行了, 然后安装oracle xe就会让你输入 web管理数据的 ...

  4. Spring总结一:Srping快速入门

    Sping是什么: Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的J ...

  5. Leetcode:Merge k Sorted Lists分析和实现

    题目大意是传入一个链表数组lists,每个链表都由若干个链接的链表结点组成,并且每个链表结点记录一个整数.题目保证传入的链表中的整数按从小到大进行排序. 题目要求我们输出一个新的链表,这个链表中应该包 ...

  6. 场景中,并没有灯源的存在,但是cube却会有灯光照射的反应,这就是Light Probe Group的作用。

    http://blog.csdn.net/qq617119142/article/details/41674755

  7. ECShop研究:去掉标题中的Powered by ECShop和meta的<meta name="Generator" content="ECSHOP v2.7.3" />

    本文以ECSHOP v2.7.3为说明,其他版本可能有所不同. 标题中的Powered by ECShop去除方法: 打开includes/lib_main.php文件: 找到156行:$page_t ...

  8. WEB前端--JavaScript

    JavaScript JavaScript基础 一.JavaScript简介 JavaScript是一种嵌入到HTML文件中的描述性语言,由浏览器的解释器将其动态地处理成可执行的代码,能独立地完成与客 ...

  9. 解析json的方法

    解析json的两种方法:JS中的eval().JSON.parse eval不仅解析内容还会解析其中的方法,JSON.parse解析更安全.JSONLint可校验json的错误.

  10. Hyper-V和vmware在虚拟机中安装xen总结

    1. Hyper-V 在hyper-v中安装了ubuntu13.04,运行很好,使用起来的效果感觉比vmware要舒服.安装变异xen的内核也没有问题,可以正常的安装,update-grub之后也可以 ...