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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
python psutil库安装教程
Mar 19 Python
django中的HTML控件及参数传递方法
Mar 20 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
python matplotlib包图像配色方案分享
Mar 14 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 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
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
php目录操作实例代码
2014/02/21 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JavaScript File分段上传
2016/03/10 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python正则表达式教程之一:基础篇
2017/03/02 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python线程的几种创建方式详解
2019/08/29 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
美国最大点评网站:Yelp
2018/02/14 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
女子职高个人自荐书
2014/02/01 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
创建文明城市倡议书
2015/04/28 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书