每个人的好友少则几百,多则三五千。学习Python这么久,有没有想过用Python一键拼出朋友的图片,做一些有趣的项目?是不是很充实?你会发现学习Python真的很有用。让我们先看看那些令人震惊的。效果图。你有密集恐惧症吗?这并不令人震惊。如果你有5000个朋友,你拍出来的照片看起来会更精彩。看完图片,你可能想知道如何制作这张图片。难道是我把朋友的头像一个一个存起来用PS拼在一起的?当然不是,它是用Python做的。你认为没有Python吗?做不到。其实这种图片早就有人玩过了,不过还是说说怎么做吧,这样大家就可以制作自己的微信好友图片墙,在朋友圈里用来装逼。方法有两种,一种简单,不接触Python代码,一种稍微复杂一点,需要写代码。先说简单的方法,只需要两步:运行程序,然后扫描微信二维码。剩下的就交给程序跳来跳去,泡杯茶,在电脑前等几分钟取图。具体等待时间视微信好友数量而定。我有近2000个朋友,大约需要10分钟。一个简单的操作示意图:几分钟就可以得到上图。其实就到这里了,是不是很简单呢?如果你对如何实现它感兴趣,你可以阅读如何用Python代码实现它。代码不长,60行就能搞定。核心是使用三个库:wxpy库,用于获取好友头像,然后下载Pillow库,用于拼接头文件,与Pyinstaller库一样,用于将Python程序打包成exe文件。程序由三个函数实现,第一个creat_filepath函数生成图片下载文件路径,第二个save_avatar函数循环获取微信好友的头像并保存到本地,第三个joint_avatar函数是将头像拼接成一个大的图像。完整代码如下:#-*-coding:utf-8-*-fromwxpyimport*importmathfromPILimportImageimportos#创建头像存放文件夹defcreat_filepath():avatar_dir=os.getcwd()+"\\wechat\\"ifnotos.path。exists(avatar_dir):os.mkdir(avatar_dir)returnavatar_dir#保存好友头像defsave_avatar(avatar_dir):#初始化机器人,扫码登录bot=Bot()friends=bot.friends(update=True)num=0forfriendinfriends:friend.get_avatar(avatar_dir+'\\'+str(num)+".jpg")print('朋友昵称:%s'%friend.nick_name)num=num+1#拼接头图defjoint_avatar(path):#获取文件夹中头像个数length=len(os.listdir(path))#设置画布大小image_size=2560#设置每个头像大小each_size=math.ceil(2560/math.floor(math.sqrt(length)))#计算需要行数的头像x_lines=math.ceil(math.sqrt(length))y_lines=math.ceil(math.sqrt(length))image=Image.new('RGB',(each_size*x_lines,each_size*y_lines))x=0y=0for(root,dirs,files)inos.walk(path):forpic_nameinfiles:#增加头像无法读取的异常处理try:withImage.open(path+pic_name)asimg:img=img.resize((each_size,each_size))image.paste(img,(x*each_size,y*each_size))x+=1ifx==x_lines:x=0y+=1exceptIOError:print("读取头像失败")img=image.save(os.getcwd()+"/wechat.png")print('微信好友头像拼接完成!')if__name__=='__main__':avatar_dir=creat_filepath()save_avatar(avatar_dir)joint_avatar(avatar_dir)可以直接运行程序文件,也可以用Pyinstaller文件打包后运行。不要在系统中直接使用pyinstaller打包,否则打包出来的exe文件会很大。建议在虚拟环境下打包,打包后的exe文件会小很多,10MB左右。虚拟环境的创建非常简单。简单描述一下步骤:1.安装pipenv和pyinstaller包,用于后续创建虚拟环境和打包程序:pipinstallpipenvpipinstallpyinstaller#已安装,不需要安装。2选择一个合适的目录作为Python虚拟环境,运行:pipenvinstall#createvirtualenvironmentpipenvshell#创建完成后,进入虚拟环境3安装程序引用的库。上述程序引用了四个库:wxpy、math、os和PIL,一行代码即可完成安装。pipenvinstallwxpymathos4特别注意PIL的安装。现在没有使用PIL库,而是使用Pillow库,所以安装Pillow库即可。但是不要安装最新的6.0.0版本,否则可能会遇到各种错误,比如:PIL无法识别下载的jpg头像文件。OSError:cannotidentifyimagefile
