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遍历文件夹和读写文件的实现代码
Aug 28 Python
一文总结学习Python的14张思维导图
Oct 17 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
Python字符串三种格式化输出
Sep 17 Python
Python读写csv文件流程及异常解决
Oct 20 Python
python中opencv实现图片文本倾斜校正
Jun 11 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基础知识:控制结构
2006/12/13 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
Python基于Faker假数据构造库
2020/11/30 Python
python中实现栈的三种方法
2020/12/19 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
最新个人职业生涯规划书
2014/01/22 职场文书
酒店节能降耗方案
2014/05/08 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
创业计划书之网吧
2019/10/10 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python