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中Inf与Nan的判断问题详解
Feb 08 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
python实现五子棋游戏
Jun 18 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
May 18 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+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
JS中递归函数
2016/06/17 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
echarts整合多个类似option的方法实例
2018/07/10 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
python实现一次创建多级目录的方法
2015/05/15 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
浅析Python __name__ 是什么
2020/07/07 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
大学生毕业自我鉴定范文
2013/11/03 职场文书
初中校园之声广播稿
2014/01/15 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
遗失说明具结保证书
2015/02/26 职场文书