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中执行shell的两种方法总结
Jan 10 Python
python爬取淘宝商品详情页数据
Feb 23 Python
transform python环境快速配置方法
Sep 27 Python
python中的json总结
Oct 11 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
Python 生成VOC格式的标签实例
Mar 10 Python
Django视图、传参和forms验证操作
Jul 15 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
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
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
jQuery 1.0.2
2006/10/11 Javascript
Javascript 写的简单进度条控件
2008/01/22 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
js验证账户名是否重复
2020/05/26 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python中的hypot()方法使用简介
2015/05/18 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
简单实现python进度条脚本
2017/12/18 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python tkinter窗口最大化的实现
2019/07/15 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
淮海战役观后感
2015/06/11 职场文书