首先,当看到朋友圈被刷屏@微信官方时,就已经意识到又是一波套路了,记得之前有在头像右下角加会员 V 符号的、还有之前圣诞节加圣诞帽的。同时看到确实很多朋友头像已经加了小国旗了,还挺好看的,必须整一个。

最高效的还是直接搜索,去百度了下微信官方加国旗(至于为啥百度,因为另一个挂了上不去了。。),得到了活动的 h5 链接,很顺利地给自己头像加了小国旗。

接下来,就是程序员思维了,它是怎么实现的呢?注意看这个活动链接的图片:

当我们登陆后,头像并不是被嵌入,而是被这个带国旗的白框直接覆盖贴上去的:

换句话说,只要我拿到了这个设计好的“国旗头像框”,将其中间掏空,缩放至头像同尺寸,直接贴到头像上就可以了。

那么问题来了,如何掏空这个头像框图片呢?我尝试电脑端去这个网页下载原图,没成功,只好从生成的图像入手。

用修图软件中的魔棒工具选中白色边框:

再进行反向选择定位到头像和国旗:

接下来将头像内容直接删除,保存成 PNG 格式,即可得到中间透明的国旗头像框了~

拿到国旗头像框,接下来就是比较容易操作的贴图,这里注意是贴中间透明的 PNG 图,之前我在赛亚人代码里用到过,当时用的 PIL 模块进行处理的。

这里仍然故技重施:

from PIL import Image# 找到头像和头像框图head = "ted.jpeg"logo = "add.png"# 打开头像source = Image.open(head)# 打开国旗头像框add = Image.open(logo)# 缩放国旗头像框mod_add = add.resize(source.size)# 贴图source.paste(mod_add,(0,0),mod_add)# 保存source.save("final.png")

在导入 PIL 模块后,以上就是全部实现代码,非常简单。要注意的就是贴图时 paste 函数里的第三个参数,就是为了保证贴图时保持 PNG 的透明性。

再回顾整个过程,貌似麻烦的反倒是用修图软件来获取这个头像国旗框。

反思

1. 写完代码,自觉得不太够看,因为人家一个链接登陆一下就能获取头像了,为什么还要麻烦兮兮地折腾这一圈?

不妨换一种思维,这其实是腾讯有这个链接,以引爆朋友圈的方式在做推广,前提是人家已经做好这个“产品”了。我们现在闲暇之余完全可以跟着学学怎么来创造一款“产品”嘛。

2. 目前体验下来,Python 代码实现起来并不省事,因为除了准备头像框,还要获取头像,这个如果想优化,可以调微信接口直接获取头像来做处理;目前推出来的 h5 链接呢,确实简单易操作,挺好。

但是,还有种思路:微信小程序。微信小程序同样可以登陆直接拿到头像,而且也是现成的平台,开发不比 h5 复杂多少,甚至可以借势推广一波,为什么没放到小程序里来做这个推广呢?

这个我暂时没想通,也打算近期尝试在小程序实现下这个功能。

以上,感谢阅读~


PS:中午写完代码时想着等晚上下班了发一下这篇文章,结果下午一瞅, Crossin 老大已经捷足先登了,不过还好他用的 opencv,没撞,哈哈

文中代码和头像框素材已经传到 GitHub,链接在置顶留言;同时也附上 Crossin 老大的实现文章哈~

头像加国旗引发的小思考相关推荐

  1. 一个不经意的问题引发的小思考

    问题: var b = function a(x) {return x;};alert(a("a7")); //IE.FF.Chrome 下都提示 a is not defined ...

  2. 圣诞节首发:给头像加圣诞帽小工具!

    最近看到小伙伴问我,马上要到圣诞节了,怎么给微信头像加圣诞帽,其实方法非常的简单,先来看一下我设置好的效果吧! 这里面的帽子样式非常多,有10多种样式可以选择,比如红色圣诞帽.绿色圣诞帽等等,下面给小 ...

  3. 微信小程序之用canvas给微信头像加小红旗(canvas无法使用网络资源绘画)

    微信小程序之使用canvas给微信头像加小红旗 情境:新中国成立70周年,普天同庆.昨天看到朋友圈中被刷屏的@官方微信 给自己的头像加小红旗.服务器被卡爆,很多朋友说换头像不成功. 任务:打算自己写一 ...

  4. 酷!圣诞节首发:给头像加圣诞帽小工具!

    最近看到小伙伴问我,马上要到圣诞节了,怎么给微信头像加圣诞帽,其实方法非常的简单,先来看一下我设置好的效果吧! 这里面的帽子样式非常多,有10多种样式可以选择,比如红色圣诞帽.绿色圣诞帽等等,下面给小 ...

  5. NSObject到底多么大引发的一些思考

    NSObject到底多么大引发的一些思考 本文引用及参考文献,感谢一下博主的分享: C++ 内存对齐-by enos 小码哥iOS学习笔记第一天: Objective-C的本质-by 冰凌天 Obje ...

  6. 关于“找老婆”问题引发的深入思考

    浅谈"数学家.理论计算机科学家.工程师的区别" 关于"找老婆"问题引发的深入思考 有一天,三个朋友一起去吃烧烤.他们分别是数学家,理论计算机科学家,计算机工程师 ...

  7. element table多选只能选中当前页数据_关于“列表多选”操作流的小思考

    之前在工作的时候遇到一个问题,在设计列表多选的时候,产品执意要将多选操作的按钮放在列表顶部,但是按照设计规范,该按钮应该是隐藏的,在勾选列表某一行后才会触发显示该按钮,随之产品提出的问题是: &quo ...

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

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

  9. 不用P图!用Python给头像加圣诞帽并制作成可执行软件!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 随着圣诞节的到来,节日气氛也越来越浓厚.大街上随处可见挂满饰品的圣诞树,好多小伙伴的头上也多了一顶红色牛角的圣诞帽. 往年在这个时 ...

  10. PHP之微信头像加水印

    微信头像加水印-PHP实现 需求描述 代码 微信默认头像不是高清头像的解决办法 需求描述 公众号小程序用户引流, 微信头像上面加 "武汉加油"水印图片, 用户通过微信分享的方式吸引 ...

最新文章

  1. 黑盒测试之等价类测试
  2. JavaScript | 创建对象并通过JavaScript函数在表中显示其内容
  3. js替换字符中的斜杠反斜杠
  4. Windows系统创建符号链接文件
  5. 小程序仿饿了么弹窗式购物车
  6. android 渲染yuv数据,Android opengl渲染yuv420例子
  7. 一次领光天猫双 11 所有优惠卷
  8. 实验吧—Web——WP之 Forms
  9. GPCP全球月降水量数据下载与读取
  10. ArcGIS三维建模(三)
  11. 主流锂电池保护板原理
  12. vb.net 教程 3-1 窗体编程基础 1
  13. layui 前端分页 后端分页
  14. 实现原理 扫描枪_条码扫描枪的原理
  15. 计算机综合应用教材,系统测评计算机综合应用技能期末作业教材.doc
  16. NVIDIA显卡硬件技术交流整理
  17. Windows下学习C语言有哪些集成开发软件?
  18. python判断矩阵是否对称_矩阵的特征分解(推导+手算+python计算+对称矩阵的特征分解性质)...
  19. 怎样将计算机引入计算教学中,计算教学学习心得
  20. ppt能转为html文件吗,请问如何能够实现将PPT分页转成HTML文件?

热门文章

  1. 二本b类大学计算机专业,位于广东的二本B类大学有哪些?
  2. c1xx : warning C4199: C++/CLI、C++/CX 或 OpenMP 不支持两阶段名称查找;请使用 /Zc:twoPhase-
  3. python3模拟键盘输入_python之模拟键盘
  4. 怎样允许计算机远程桌面连接,win10允许远程桌面连接如何设置_win10怎样设置允许远程桌面连接...
  5. Bugku CTF 每日一题 旋转跳跃 BUUCTF 九连环
  6. CDOJ 1131 男神的礼物 区间dp
  7. 加州大学洛杉机分校计算机科学,加州大学洛杉矶分校计算机科学与工程世界排名2017年最新排名第6(ARWU世界排名)...
  8. MySQL多表左右连接查询
  9. python垃圾分类程序_如何利用Python进行垃圾分类
  10. Python学习(七)if语句