import itchat import os import PIL.Image as Image #PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。 from os import listdir import math #from wxpy import * # 实例化,并登录微信 #bot = Bot(cache_path=True) #自动生成一个图片,从电脑底部跳出来,扫描就行。 itchat.auto_login(enableCmdQR=True) #friends是许多字典构成的列表,每个朋友的所有信息构成一个字典, friends = itchat.get_friends(update=True)[0:] user = friends[0]["UserName"] #[0]代表取自己的信息,[friends]代表取UserName对应的值,UserName是键key print(user) #@dc71ffea7e7912610e604a94840938810374d105ed4fe811b2fad06930765c0c.jpg os.mkdir(user) #函数用于以数字权限模式创建目录得到:D:\ST\Python_work\@dc71ffea7e7912610e604a94840938810374d105ed4fe811b2fad06930765c0c #@dc71ffea7e7912610e604a94840938810374d105ed4fe811b2fad06930765c0c_friends,这是一个未知格式的文件,但是打不开 num = 0 for i in friends: img = itchat.get_head_img(userName=i["UserName"]) #得到每位好友的头像 fileImage = open(user + "/" + str(num) + ".jpg",'wb') #打开文件user + "/" + str(num) + ".jpg"是给每个图片命名。数字开头,jpg格式照片,如果不存在就创建一个这样名字的图片比如3.jpg #但是这个文件夹 fileImage.write(img) fileImage.close() num += 1 #统计好友数目,也给照片命名 pics = listdir(user) #文件夹user:D:\ST\Python_work\@dc71ffea7e7912610e604a94840938810374d105ed4fe811b2fad06930765c0c按照字母顺序排序 numPic = len(pics) #统计照片数目 print(numPic) eachsize = int(math.sqrt(float(640 * 640) / numPic)) #计算每个小头像的边(都是正方形),总图片是640 * 640大小,除以好友个数, print(eachsize) numline = int(640 / eachsize) #计算行数和列数, #PIL的ImageDraw提供了一系列绘图方法,让我们可以直接绘图 toImage = Image.new('RGBA', (640, 640)) #创建一个(640, 640)大小的图片存放所有的好友的头像 #image = Image.new('RGB', (width, height), (255, 255, 255)) print(numline) #每行的图片数目 x = 0 y = 0 for i in pics: #PICS是列表格式,里面有所有好友按照数字从1到好友数目的照片 try: #这里要打开的是具体的某个文件 img = Image.open(user + "/" + i) #D:\ST\Python_work\@dc71ffea7e7912610e604a94840938810374d105ed4fe811b2fad06930765c0c\1.jpg except IOError: #打不开文件就报错 print("Error: file open error or cann't find file") else: img = img.resize((eachsize, eachsize), Image.ANTIALIAS) #把每个照片设置为刚才得到的大小 toImage.paste(img, (x * eachsize, y * eachsize)) #放置每个图片的位置 x += 1 if x == numline: #如果一行放到头了,换行,从新开始放 x = 0 y += 1 toImage.save(user + ".jpg") #保存最终的图片为user + ".jpg" itchat.send_image(user + ".jpg", 'filehelper') # # 自动向文件助手里面发送图片,不需要可以关闭 toImage.show() #我直接放弃了多余的让图片无法成为完整正方形的头像
Python项目:生成微信好友头像拼接图
猜你喜欢
转载自blog.csdn.net/btujack/article/details/80720039
今日推荐
周排行