引言
前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像。
效果如下图,出于隐私考虑,这里作了模糊处理。
是不是很炫,而且这还是独一无二的,毕竟每个人的微信好友是不一样的。本文就教大家用Python来实现这种效果。
环境
操作系统:Windows
Python版本:3.7.3
代码实现
我们需要首先需要获取好友的头像信息,接下来处理图像并完成图像的拼接。
准备工作
在这里,我们登录微信获取好友信息,使用的是 wxpy 模块;处理并生成最终的图像借助 PIL 模块。因为都是第三方模块,如环境中没有可以使用 pip 进行安装。另外涉及路径的处理等,我们需要导入 os 模块和 sys 模块。
from wxpy import * import PIL.Image as Image import os import sys
获取并存储好友头像信息
我们要获取微信好友的头像,首先需要登录微信
# 初始化机器人,扫码登陆微信,适用于Windows系统 bot = Bot() # # Linux系统,执行登陆请调用下面的这句 # bot = Bot(console_qr=2, cache_path="botoo.pkl"
在获取好友头像信息之前,我们得先在本地创建一个目录,用于后续存储好友头像的文件。
# 获取当前路径信息 curr_dir = get_dir(sys.argv[0]) # 如果FriendImgs目录不存在就创建一个 if not os.path.exists(curr_dir + "FriendImgs/"): os.mkdir(curr_dir + "FriendImgs/")
接下来就是获取友头像信息,并将其存储在本地创建的目录中。
my_friends = bot.friends(update=True) # 获取好友头像信息并存储在FriendImgs目录中 n = 0 for friend in my_friends: friend.get_avatar(curr_dir + "FriendImgs/" + str(n) + ".jpg") n = n + 1
这时你就可以在本地FriendImgs文件夹中,看到保存下来的微信好友头像的图片。
生成微信好友墙
制作微信好友墙,就像以前的大字报,把我们下载的好友头像逐一贴上去即可。
首先设定好微信好友墙的尺寸,使用 Image.new() 方法。
image = Image.new("RGB", (650, 650))
接下来,我们需要逐个打开微信好友的图片,使用 Image.open() 方法。
img = Image.open(curr_dir + "FriendImgs/" + file_names)
将微信头像图片,重置为50*50像素尺寸的小图,使用 img.resize() 方法。
img = img.resize((50, 50), Image.ANTIALIAS)
然后将图片黏贴到我们的照片墙中,使用 image.paste() 方法。
image.paste(img, (x * 50, y * 50))
最后将制作完成的照片墙保存下来,使用 image.save() 方法。
img = image.save(curr_dir + "WeChat_Friends.jpg")
现在我们将本小节中代码整合到一起,如下所示:
# 准备生成微信好友头像墙的尺寸 image = Image.new("RGB", (650, 650)) # 定义初始图片的位置 x = 0 y = 0 # 获取下载的头像文件 curr_dir = get_dir(sys.argv[0]) ls = os.listdir(curr_dir + 'FriendImgs') # 遍历文件夹的图片 for file_names in ls: try: # 依次打开图片 img = Image.open(curr_dir + "FriendImgs/" + file_names) except IOError: continue else: # 重新设置图片的大小 img = img.resize((50, 50), Image.ANTIALIAS) # 将图片粘贴到最终的照片墙上 image.paste(img, (x * 50, y * 50)) # 设置每一行排13个图像 x += 1 if x == 13: x = 0 y += 1 # 保存图片为WeChat_Friends.jpg img = image.save(curr_dir + "WeChat_Friends.jpg
代码执行后,最终生成的效果图如下:
(这里展示的图片做了模糊处理)
后记
本文中设定照片墙尺寸为650650,而好友头像尺寸为5050,这样最终制作成的照片墙每行有13位好友,共计容纳13*13位好友。
大家可根据自己实际情况,自行调整尺寸参数,以达到最佳效果。大家赶快去生成自己独一无二的照片墙吧~!
好啦,本文所有内容就到这里结束啦。其实后面还可以衍生很多玩法,比如:心行墙、圆墙等。不过逻辑一样,就是代码处理起来会比较麻烦。有兴趣的可以先自己试试,或者等我……
代码已上传至Github
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】