python itchat实现微信好友头像拼接图的示例代码


Posted in Python onAugust 14, 2017

偶然在网上发现itchat这个框架,itchat是一个开源的微信个人号接口,它使python调用微信变得非常简单。看到网上有人发自己微信好友的头像拼接图,自己也做了一个,感觉还蛮好玩的。

效果图

python itchat实现微信好友头像拼接图的示例代码

下面介绍实现过程:

安装itchat

这个当然还是使用豆瓣源了,速度杠杠的pip install -i https://pypi.douban.com/simple/ itchat

项目依赖

头像拼接用到了pillow这个第三方库,和itchat一样的安装方法

代码

首先调用接口登录,然后可以获取到好友信息,其中第一个为自己的信息。返回的信息为一个列表,里面内容可以复制出来通过json工具格式化,查看返回的字段。然后再次调用接口下载图片,用pillow拼接即可。

import itchat
import math
import os
import PIL.Image as Image

#给auto_login方法传入值为真的hotReload.即使程序关闭,一定时间内重新开启也可以不用重新扫码
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)

#下载所有好友的头像图片
num = 0
for i in friends:
 img = itchat.get_head_img(i["UserName"])
 with open('./headImg/' + str(num) + ".jpg",'wb') as f:
  f.write(img)
  f.close()
  num += 1
#获取文件夹内的文件个数
length = len(os.listdir('./headImg'))
#根据总面积求每一个的大小
each_size = int(math.sqrt(float(810*810)/length))
#每一行可以放多少个
lines = int(810/each_size)
#生成白色背景新图片
image = Image.new('RGBA', (810, 810),'white')
x = 0
y = 0
for i in range(0,length):
 try:
  img = Image.open('./headImg/' + str(i) + ".jpg")
 except IOError:
  print(i)
  print("Error")
 else:
  img = img.resize((each_size, each_size), Image.ANTIALIAS) #resize image with high-quality
  image.paste(img, (x * each_size, y * each_size))
  x += 1
  if x == lines:
   x = 0
   y += 1
image.save('./headImg/' + "all.jpg")
#通过文件传输助手发送到自己微信中
itchat.send_image('./headImg/' + "all.jpg",'filehelper')
image.show()

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

Python 相关文章推荐
python实现定制交互式命令行的方法
Jul 03 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
Python读写unicode文件的方法
Jul 10 Python
python字符串,数值计算
Oct 05 Python
python3+PyQt5实现拖放功能
Apr 24 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
python的mysqldb安装步骤详解
Aug 14 #Python
python制作小说爬虫实录
Aug 14 #Python
python安装Scrapy图文教程
Aug 14 #Python
基于python时间处理方法(详解)
Aug 14 #Python
关于Django外键赋值问题详解
Aug 13 #Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 #Python
详解python中executemany和序列的使用方法
Aug 12 #Python
You might like
新版PHP将向Java靠拢
2006/10/09 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
php简单的上传类分享
2016/05/15 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php5与php7的区别点总结
2019/10/11 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python中int与str互转方法
2018/07/02 Python
python中scikit-learn机器代码实例
2018/08/05 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
个人素质的自我评价分享
2013/12/16 职场文书
村委会贫困证明
2014/01/14 职场文书
创建文明学校实施方案
2014/03/11 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle