腾讯优图AI:https://open.youtu.qq.com/#/open

#功能:微信好友头像下载,并识别人脸,测出颜值,画出饼状图。
#PS:头像识别输出的第一列为好友备注名,没备注名的是数字。

#头像识别,首先申请腾讯优图,得到密钥。

import os
import itchat 
import math
import PIL.Image as Image
import TencentYoutuyun
from pyecharts import Pie

#上述导入库自行安装

#itchat.auto_login(hotReload=True)#登录

#friends = itchat.get_friends()
#获取好友图像
def headimg():
    base_path="img"
    if not os.path.exists(base_path):
        os.mkdir(base_path)

for count,f in enumerate(friends):
        img=itchat.get_head_img(userName=f["UserName"])

img_name=f['RemarkName'] if f['RemarkName']!="" else f['RemarkName']

img_file=os.path.join(base_path,img_name+str(count)+".jpg")
        imgFile=open(img_file,"wb")
        imgFile.write(img)
        imgFile.close()

#头像拼接
def createImg():
    x=0
    y=0
    imgs=os.listdir("img")
    newImg=Image.new("RGBA",(640,640))
    width=int(math.sqrt(640*640/len(imgs)))
    numLine=int(640/width)
    for i in imgs:
        try:
            img=Image.open("img/"+i)
            img=img.resize((width,width),Image.ANTIALIAS)
            newImg.paste(img,(x*width,y*width))
            x+=1
            if x>numLine:
                x=0
                y=y+1
        except IOError:
            print("img/%s can't open"%(i))
        newImg.save("all.png")

headimg()#下载好友头像,头像图片名为备注名,没有就是数字
createImg()#拼接好友头像
appid='10174346'

secret_id='AKIDVAPtvHdZUBmHYfu6h9QWRI3A4qPkFlV8'

secret_key='vluyrRo8GAr8G8oFWakfQc0C1d1A7vY3'

userid='237314158'
end_point=TencentYoutuyun.conf.API_YOUTU_END_POINT#优图开放平台

youtu=TencentYoutuyun.YouTu(appid,secret_id,secret_key,userid,end_point)
use_face=0
not_use_face=0
base_path='img'
#好友头像的识别
for file_name in os.listdir(base_path):
    result=youtu.DetectFace(os.path.join(base_path,file_name))
    #print(result)
    if result["errorcode"]==0:
        use_face+=1
        gender="男" if result['face'][0]['gender']>=50 else "女"

age=result['face'][0]['age']
        beauty=result['face'][0]['beauty']
        glass="戴眼镜" if result['face'][0]['glass']==True else "不戴眼镜"
        hat='有帽子' if result['face'][0]['hat']==1 else "没有帽子"
        expression='大笑' if result['face'][0]['expression']>=80 else '正常'
        
        
        print(file_name[:-4],gender,age,beauty,glass,hat,expression,sep=',')
        
    elif result["errorcode"]!=0:
        not_use_face+=1

#好友头像画出饼状图
attr = ["humanface", "not_use_face"]
value = [use_face,not_use_face]
pie = Pie("好友头像识别", "好友总数:%d" % int(use_face+not_use_face), title_pos='center')
pie.add('', attr, value, radius=[15, 35], rosetype='area', is_label_show=True,
        is_legend_show=True, legend_top='bottom')  # radius的两个参数:前者是饼状图的内半径,后者是外半径
pie.show_config()  # 打印输出图标的所有配置项
pie.render('好友头像识别.html')   # 在根目录下生成一个微信好友性别例.html 的文件

获取微信好友头像,对其进行相应操作相关推荐

  1. [533]python获取微信好友头像生成点阵图片

    首先是点阵字的概念:点阵字体是把每一个字符都分成 n * n 个点,然后用每个点的虚实来表示字符的轮廓.点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示. 汉字那么多,总不能每个字都去自己设 ...

  2. python获取微信好友头像拼接“2020”

    python获取微信好友头像拼接"2020" 背景 思路 源码说明 背景 2019年的最后一天,心想马上就要跨年,大家都在总结和祝福,但是又不想随大流,打开微信,翻看着通讯录,突然 ...

  3. 基于itchat获取微信好友头像

    itchat貌似又解封了.. 关于微信好友这块就到此结束吧,也没啥新意了-- 上代码: #!/usr/bin/env python # -*- coding:utf-8 -*- import itch ...

  4. python获取微信好友头像,制作头像照片墙集合!

    登录微信: itchat.auto_login(hotReload=True) 获取好友头像: friends = itchat.get_friends(update=True) for friend ...

  5. 来!把 5000 微信好友头像拼成一张图!

    作者 | 苏克1900 本文经授权转载自高级农民工(ID:Mocun6) 先PO一张图. 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的图看着会更刺激些. 看完了图,你可能想 ...

  6. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  7. python爬虫好友图片_Python爬取所有微信好友头像,制作微信好友图片墙

    今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定. 核心是利用三个库:wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinsta ...

  8. python表白代码照片墙-如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  9. 用python做一个微信好友头像合集

    近日在学习python,在公众号上学到的一个很有意思的小项目,利用python将微信所有好友的头像做成拼图,效果如下. 看完了图,你可能想知道这个图咋做出来的,不会是我闲着无聊把把好友头像一个个保存下 ...

最新文章

  1. 只要你敢进来,没有学不会xml滴
  2. 什么函数不能声明为虚函数
  3. 用Word写博客园文章
  4. 分布式缓存Redis介绍
  5. 咱中国女人太贪钱? 其实真不怨她们
  6. modprobe命令使用方法
  7. linux sudo 命令权限,linux su和sudo命令的区别
  8. Howto Dynamically Insert Javascript And CSS
  9. 搜索引擎的那些事(多线程web遍历)
  10. 【numpy】数组增加一维(升维)小结
  11. 创e下载园7edown.com(坑爹流氓网站大揭秘)
  12. 关于海康门禁的开发体会一
  13. tibco rv java实例_基于python使用tibco ems代码实例
  14. Java 判断字符串仅包含半角字符
  15. nginx url中带中文不能访问
  16. input button 光标变为手型
  17. 基于VQ适量特征的说话人识别
  18. 微信小程序——引入第三方图标、图标组件
  19. 百度导航坐标转换问题
  20. uni-app获取当前位置并计算出某个地点距离

热门文章

  1. Thinkphp5 谷歌验证
  2. 【光线追踪系列十四】蒙特卡洛积分与重要性采样
  3. The word 'jsp' is not correctly spelled. Eclipse 拼写检查出错处理办法
  4. fabric8镜像的deployments脚本
  5. 逆水寒7.25服务器维护,逆水寒7月4日更新维护公告 角色交易功能上线
  6. configure: error: Package requirements (sqlite3 」 3.7.4) were not met:
  7. Word在试图打开文件时遇到错误
  8. 我这些年对游戏外挂辅助开发的一些心得和体会
  9. CCRC信息安全服务资质审核费用是多少?
  10. Java编程思想读书笔记——复用类