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中文件遍历的两种方法
Jun 16 Python
在Python中使用dict和set方法的教程
Apr 27 Python
python遍历数组的方法小结
Apr 30 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
Python统计时间内的并发数代码实例
Dec 28 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
Python列表倒序输出及其效率详解
Mar 04 Python
基于python实现操作git过程代码解析
Jul 27 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php数组添加元素方法小结
2014/12/20 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
python中二维阵列的变换实例
2014/10/09 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python中itertools的用法详解
2020/02/07 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
三个Unix的命令面试题
2015/04/12 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
学前教育毕业生自荐信
2013/10/29 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
求职信模板
2014/05/23 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
团队拓展活动方案
2014/08/28 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
2015年财政所工作总结
2015/04/25 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python