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脚本实现分析dns日志并对受访域名排行
Sep 18 Python
python通过索引遍历列表的方法
May 04 Python
python爬虫之百度API调用方法
Jun 11 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
想学画画?python满足你!
Dec 24 Python
python设置 matplotlib 正确显示中文的四种方式
May 10 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
用Vue编写抽象组件的方法
2019/05/06 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
python使用7z解压apk包的方法
2015/04/18 Python
机器学习10大经典算法详解
2017/12/07 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python读取指定字节长度的文本方法
2019/08/27 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
给老婆大人的检讨书
2014/02/24 职场文书
应届毕业生自荐信
2014/05/28 职场文书
重阳节活动主持词
2015/07/04 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers
Java中的Kotlin 内部类原理
2022/06/16 Java/Android