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

其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片:

代码中汉字文本可以自定义输入,头像图片也可以是备好的其他图片。怎么样,比之前的点阵字是不是更酷了些?

思路

基本思路很直接:读取微信好友头像,按照汉字的点阵信息进行拼接,生成完整的单字图片。

获取汉字的点阵信息也是按照之前的思路:利用汉字库HZK16文件来实现。拿到点阵信息后,将背景图片当做16*16点阵,用头像图片和空白来替代点阵中的点。这里为了提高字笔画的丰富性,我采用一个点对应4个头像图片。

itchat

首先是安装 itchat库,在代码中import itchat,之后直接调用方法。

获取头像图片

通过好友列表中的信息,读取头像图片内容,存储到本地,这样就完成了头像素材的获取。

好友如果很多,这个阶段耗时会较长。此外这个过程中发现有的好友可能没有设置头像、或者头像格式比较特殊,会导致读取失败,这里要利用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图形界面以规范样式,以及现在用图片来拼点阵字,算是一个纵向自学的过程吧。可能重在乐子而非应用,但这个过程中,用心想了、尽力做了,权当对自己的一种锻炼吧。

代码下载

python代码图片头像_Python玩微信——头像组字篇相关推荐

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

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

  2. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

  3. python代码怎么修改_python修改微信和支付宝步数的示例代码

    项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该python脚本可以帮你实现. 实现方法 手机安装第三方软件乐心健 ...

  4. Python玩微信头像组字

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

  5. python代码图片头像_Python帮你微信头像任意添加装饰别再@微信官方了

    @微信官方 昨天朋友圈刷爆了@微信官方的梗,从起初的为头像添加国旗,到最后的各种Book思议的需求-而我呢?@了辣么辣么多的奥特曼,结果还是加班到12点多-最后想想,人还是得靠自己吧,@我自己吧- 昨 ...

  6. python代码图片头像_60行Python代码一键拼出你的微信好友图片墙!

    原标题:60行Python代码一键拼出你的微信好友图片墙! 源 /高级农民工文 /苏克1900 近 2000 位好友的头像拼图,有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的 ...

  7. python代码图片头像_Python图片裁剪实例代码(如头像裁剪)

    今天就来说个常用的功能,图片裁剪,可用于头像裁剪啊之类的.用的还是我们之前用的哪个模块pillow 1. 安装pillow 用pip安装 pip install pillow 2. 图片裁剪 2.1 ...

  8. python朋友圈头像_Python读取微信好友头像,拼成祝福语九宫格

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

  9. Python玩微信——头像组字篇

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

最新文章

  1. GitHub开源的吃鸡版超级玛丽
  2. js---25桥模式
  3. 腾讯面试题:一条SQL语句执行得很慢的原因有哪些?
  4. 网络带宽测试工具iperf3(arm<->PC)
  5. 微信emoji表情及输入法自带表情存储与显示
  6. 字节跳动8年经验,亲身经历教你如何从小白晋升月薪过万的测试工程师
  7. 【硬十宝典】——7.1【动态RAM】DDR硬件设计要点
  8. 七战DTCC铸成ACE Director 去哪儿网周彦伟畅聊数据库的十八般武艺
  9. java excel 合并单元格_java excel 合并单元格
  10. eclipse cdt + rse文件保存遇到的问题
  11. 在安卓中实现Zigbee串口设备采集模块
  12. 智能垃圾桶语音芯片应用设计方案介绍,WT588F02B-8S
  13. win10 C盘清理总结记录
  14. Goodbye,OI!
  15. 序列的自相关和互相关计算
  16. Strerror函数和Perror函数的介绍及使用
  17. Ring Buffers (环形消息缓冲区)
  18. 工作第十四周:整理收藏夹、旧文章有感
  19. std list/vector sort 排序就这么简单
  20. 【测试】用例测试设计方法

热门文章

  1. WMTS服务参数解析以及Cesium加载WMTS服务
  2. Error:Internal error: (java.lang.IllegalArgumentException) No enum constant org.jetbrains.jps.model.
  3. 浅显易懂的Git教程
  4. 国密SM9算法C++实现之三:椭圆曲线接口、参数初始化
  5. 数模更新篇-2-用Excel绘制统计图(上)
  6. 珠峰峰顶首次5G通话背后的中国“荣耀”时刻
  7. 女生小清新高颜值蓝牙耳机分享,低延迟高性价比TWS蓝牙耳机推荐
  8. Android Canvas之Path的详解与使用(二)
  9. 光纤传导多大功率的激光束 学习
  10. 凸轮轴曲轴位置传感器信号波形组合测试-汽车示波器