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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
Python实现多属性排序的方法
Dec 05 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
python求前n个阶乘的和实例
Apr 02 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
python math模块的基本使用教程
Jan 16 Python
Python list列表删除元素的4种方法
Nov 01 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-MySQL教程归纳总结
2008/06/07 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
List Installed Software Features
2007/06/11 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
python画双y轴图像的示例代码
2019/07/07 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Pyqt5自适应布局实例
2019/12/13 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
关于python中remove的一些坑小结
2021/01/04 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
物业电工岗位职责
2013/11/20 职场文书
开业庆典答谢词
2014/01/18 职场文书
职工运动会邀请函
2014/01/19 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
卫生保健工作总结2015
2015/05/18 职场文书