Python玩微信——头像组字篇
正好今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下:
其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片:
代码中汉字文本可以自定义输入,头像图片也可以是备好的其他图片。怎么样,比之前的点阵字是不是更酷了些?
思路
基本思路很直接:读取微信好友头像,按照汉字的点阵信息进行拼接,生成完整的单字图片。
读取微信好友头像的思路上篇提到过:利用开源的微信接口itchat,扫码登录个人微信,读取好友信息中的头像存到本地。
获取汉字的点阵信息也是按照之前的思路:利用汉字库HZK16文件来实现。拿到点阵信息后,将背景图片当做16*16点阵,用头像图片和空白来替代点阵中的点。这里为了提高字笔画的丰富性,我采用一个点对应4个头像图片。
itchat
itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。
首先是安装 itchat库,在代码中import itchat,之后直接调用方法。
#通过二维码登录微信网页版itchat.auto_login()#获取微信好友信息列表friendList = itchat.get_friends(update=True)
获取头像图片
通过好友列表中的信息,读取头像图片内容,存储到本地,这样就完成了头像素材的获取。
好友如果很多,这个阶段耗时会较长。此外这个过程中发现有的好友可能没有设置头像、或者头像格式比较特殊,会导致读取失败,这里要利用try except语法进行控制。
汉字转点阵
点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示
HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个,每个汉字模型需要16×16一共需要256个点来显示。
头像图片拼接
每个头像图片统一裁剪为100*100的小方图,16*16的点阵,每个点是2*2个头像小方图,即最终图片为长16*2*100的方图。
首先通过PIL模块生成背景图,可以设置自己喜欢的颜色:
#如果想要白色背景,将colorlist[index]改为'#FFFFFF'canvas = Image.new('RGB', (3200, 3200), colorlist[index]) # 新建一块画布
根据汉字的点阵信息,控制是否将头像图片在该位置展现,最终生成头像图片拼接的单字大图。
九宫格效果
微信朋友圈九宫格效果如下,首先是新年祝福:
还有张大吉大利吃鸡九宫格:
回顾
用头像来组字的想法产生挺久了,最开始是想自己设计字形根据笔画来排列头像图片,觉得太辛苦就一直没去做。最近接触了点阵字并用代码来展示后,才有了实现图片组字的信心。
正好碰到朋友过生日,就用代码送上一点心意,比较简陋,但重在心意,感觉还是很不错的。
关于点阵字,从最开始的用0和1来展示,到改变成特殊符号提高美感,再到用tkinter图形界面以规范样式,以及现在用图片来拼点阵字,算是一个纵向自学的过程吧。可能重在乐子而非应用,但这个过程中,用心想了、尽力做了,权当对自己的一种锻炼吧。
代码下载
后台回复 头像组字 获取下载链接,由于每次通过微信下载好友头像图片耗时较长,附加了个单纯用图片组字的代码。
代码文件中添加了注释,也附了个txt文档说明,如果感兴趣可以看看,非常欢迎各种建议和意见~
最后,如果觉着还可以,欢迎关注下本公众号哈~本着一颗玩Python的心,自己去尝试各种小代码小项目,欢迎组团哈~
Python玩微信——头像组字篇相关推荐
- Python玩微信头像组字
Python玩微信头像组字 思路 itchat 获取头像图片 汉字转点阵 头像图片拼接 九宫格效果 回顾 代码 最后 上一篇,用Python实现了拿微信好友头像来拼接背景,融合成自己的新头像. 再之前 ...
- python代码图片头像_Python玩微信——头像组字篇
正好今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下: 其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片: 代码中汉字文本可以自定义输入, ...
- python微信头像_Python玩微信——头像组字
上一篇,用Python实现了拿微信好友头像来拼接背景,融合成自己的新头像. 再之前呢,我们也实现了点阵字的输出与展示. 正好今天有位老哥过生日,我就把头像拼接和点阵字结合起来,搞了个头像成字的代码,请 ...
- python 微信_wxpy: 用 Python 玩微信
wxpy: 用 Python 玩微信¶ 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展 注意 强烈建议 ...
- python头像右上角加红色数字_利用python实现微信头像加红色数字功能
通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...
- Python玩转《生僻字》
Python玩转<生僻字> 最终效果 思路 pypinyin库 读写txt文本 拼接 回顾 代码下载 最后 茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 ...
- python程序设置头像_利用python实现微信头像加红色数字功能
通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...
- python微信使用教程_小白用Python | 十分钟Python玩微信教程
原标题:小白用Python | 十分钟Python玩微信教程 代码放在这里:wzyonggege/python-wechat-itchat 词云那里可以换成小黄人图片 ---------------- ...
- 用 Python 玩微信,机器人陪你唠嗑
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 月出惊山鸟,时鸣春涧中. 之前给大 ...
最新文章
- 部署通用基础设施, 满足顶级 SLA 要求
- PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
- python3 获取当前目录和上级目录
- java utf-8格式,JAVA编写文件格式转换UTF-8
- 程序员:你见过哪些要命的奇葩代码?
- arm-linux-gcc:Command not found的问题
- SQL 连接字符串的说明(转)
- spring boot集成kaptcha图形验证码
- echarts地图地名显示_echarts地图 省份名称自定义位置和居中解决办法
- gis投影中未定义的地理转换_ArcGIS中5分钟搞懂坐标系相关知识
- Bash shell编程的语法知识点(1)
- python语言程序设计西安电子科技大学答案-中国科学技术大学2019自命题科目覆盖范围及参考书目...
- 为什么很多人选择bgp机房托管
- linux下 OOB 炸弹的制作
- windows下的虚拟化
- OSChina 周日乱弹 —— 我们今天不上班!
- python版钉钉回调
- 热销超极本iFunk翼S到底怎么样?
- 【Unity3D游戏开发学习笔记】(七)上帝之眼—第三人称摄像机的简单实现(跟随视角,自由视角)
- nginx和gunicorn相关,反向代理和正向代理区别,静态资源和动态资源
热门文章
- html怎么解决gif图放大失真问题
- 计算机屏幕自己动,电脑显示器老是自动调整怎么办
- iSubtitle for Mac(视频字幕制作软件)
- 海思[hi3531]编译环境搭建(针对用于编译程序不制作内核和系统的开发者)
- 基于自杀领域个性化知识图谱的社交媒体自杀意念检测
- P1417 烹调方案
- 课件(Part 1, PJ)
- MyEclipse使用教程:MyEclipse Libraries
- mysql ERROR 1114 (HY000): The table ‘XXX‘ is full
- Kubernetes安装系列之coredns安装