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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
Python短信轰炸的代码
Mar 25 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
浅析Python 字符编码与文件处理
Sep 24 Python
python关于倒排列的知识点总结
Oct 13 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
Python中super().__init__()测试以及理解
Dec 06 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
28个JS验证函数收集
2010/03/02 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
python实现telnet客户端的方法
2015/04/15 Python
深入浅析python继承问题
2016/05/29 Python
深入解析Python中的上下文管理器
2016/06/28 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
英国健身专家:WIT Fitness
2021/02/09 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
新郎结婚感言
2015/07/31 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Python中字符串对象语法分享
2022/02/24 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫