正好今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下:

其中,每个字都是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玩微信——头像组字篇相关推荐

  1. Python玩微信头像组字

    Python玩微信头像组字 思路 itchat 获取头像图片 汉字转点阵 头像图片拼接 九宫格效果 回顾 代码 最后 上一篇,用Python实现了拿微信好友头像来拼接背景,融合成自己的新头像. 再之前 ...

  2. python代码图片头像_Python玩微信——头像组字篇

    正好今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下: 其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片: 代码中汉字文本可以自定义输入, ...

  3. python微信头像_Python玩微信——头像组字

    上一篇,用Python实现了拿微信好友头像来拼接背景,融合成自己的新头像. 再之前呢,我们也实现了点阵字的输出与展示. 正好今天有位老哥过生日,我就把头像拼接和点阵字结合起来,搞了个头像成字的代码,请 ...

  4. python 微信_wxpy: 用 Python 玩微信

    wxpy: 用 Python 玩微信¶ 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展 注意 强烈建议 ...

  5. python头像右上角加红色数字_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  6. Python玩转《生僻字》

    Python玩转<生僻字> 最终效果 思路 pypinyin库 读写txt文本 拼接 回顾 代码下载 最后 茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 ...

  7. python程序设置头像_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  8. python微信使用教程_小白用Python | 十分钟Python玩微信教程

    原标题:小白用Python | 十分钟Python玩微信教程 代码放在这里:wzyonggege/python-wechat-itchat 词云那里可以换成小黄人图片 ---------------- ...

  9. 用 Python 玩微信,机器人陪你唠嗑

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 月出惊山鸟,时鸣春涧中. 之前给大 ...

最新文章

  1. 部署通用基础设施, 满足顶级 SLA 要求
  2. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
  3. python3 获取当前目录和上级目录
  4. java utf-8格式,JAVA编写文件格式转换UTF-8
  5. 程序员:你见过哪些要命的奇葩代码?
  6. arm-linux-gcc:Command not found的问题
  7. SQL 连接字符串的说明(转)
  8. spring boot集成kaptcha图形验证码
  9. echarts地图地名显示_echarts地图 省份名称自定义位置和居中解决办法
  10. gis投影中未定义的地理转换_ArcGIS中5分钟搞懂坐标系相关知识
  11. Bash shell编程的语法知识点(1)
  12. python语言程序设计西安电子科技大学答案-中国科学技术大学2019自命题科目覆盖范围及参考书目...
  13. 为什么很多人选择bgp机房托管
  14. linux下 OOB 炸弹的制作
  15. windows下的虚拟化
  16. OSChina 周日乱弹 —— 我们今天不上班!
  17. python版钉钉回调
  18. 热销超极本iFunk翼S到底怎么样?
  19. 【Unity3D游戏开发学习笔记】(七)上帝之眼—第三人称摄像机的简单实现(跟随视角,自由视角)
  20. nginx和gunicorn相关,反向代理和正向代理区别,静态资源和动态资源

热门文章

  1. html怎么解决gif图放大失真问题
  2. 计算机屏幕自己动,电脑显示器老是自动调整怎么办
  3. iSubtitle for Mac(视频字幕制作软件)
  4. 海思[hi3531]编译环境搭建(针对用于编译程序不制作内核和系统的开发者)
  5. 基于自杀领域个性化知识图谱的社交媒体自杀意念检测
  6. P1417 烹调方案
  7. 课件(Part 1, PJ)
  8. MyEclipse使用教程:MyEclipse Libraries
  9. mysql ERROR 1114 (HY000): The table ‘XXX‘ is full
  10. Kubernetes安装系列之coredns安装