请选择 进入手机版 | 继续访问电脑版
发帖
查看: 17|回复: 0

你还在@微信官方?用 Python 随意生成你想要的微信头像

[复制链接]

你还在@微信官方?用 Python 随意生成你想要的微信头像[复制链接]

早上@微信官方突然火了,
一句“请给我一面国旗@微信官方”
刷遍朋友圈。
到底是什么呢?
我们先来看看朋友圈












当然,这只是零零散散的部分截图,
看到这些,一股热血洒了出来,
我兴致勃勃的准备发朋友圈,
请神仙微信官方给我也换个头像,
就在这时,我手贱,
一不小心刷了下朋友圈,
结果:





我,好(lei)高(ge)兴(qu)啊!
原来是套路啊,
后来仔细想想,也是,
微信官方
哪有那么多时间给我换头像。
当然,
这也激发了我的程序员思维,
别人能做,我为啥不能?
说干就干,拿起Python就往前冲。
一、原始需求:
给自己的微信头像,加个国旗或者70的Logo。
解析:好像在和微信交互,太难了。
二、简化需求

  • 给图片加上国旗或者70年的Logo
  • 然后手动换头像
解析:要抠图,在图片指定位置加小图片,好像也比较难。
三、简化需求+1

  • 朋友圈随便找两个已经换好头像的好友,下载他们的图像。
  • 抠图工具去除图像中人像部分,弄出基本模型。
  • 合并原头像与我们扣图生成的模型。
  • 手动换微信图片。
解析:理论上没有问题。
三、过程/代码
第一步,朋友圈随便找两个已经换好头像的好友,下载他们的图像。
太简单了,打开朋友圈,看看哪个人在@微信官方,头像还换过来了,对,就是他在骗你,斗他。
第二步,抠图工具去除图像中人像部分,弄出基本模型。
嗯~我不太会用PS,这是我抠出来的!惨不忍睹~





不过,我有个精通PS的女朋友呀~





还是女朋友厉害,三下两下就好了~夸夸~
第三步,合并原头像与我们扣图生成的模型。
这个步骤是个漫长的过程,
我发了社群看看有没有了解图像处理的朋友,
发了朋友圈看看有没有志同道合的朋友~
有些人回复了,
却没有解决问题!







网上也找了一堆,没有对口的,在肚子叫声渐渐大起来时,我深思:我的需求难吗?我的需求奇葩吗?
就在这时候,读者朋友提供了一个他之前做的换证件照底色的代码样例。
我看了一下处理方法,试了一下,OK!
这里特别感谢:Dime 同学的帮助。










具体代码:
# -*- coding: utf-8 -*-
"""
@author = 老表
@date = 2019-09-24
@个人公众号 : 简说Python
"""
# 注意:print_function的导入必须在Image之前,否则会报错
from __future__ import print_function
from PIL import Image
"""
需求:给图片右下角添加中国国旗
欢迎国庆,喜庆70周年
"""
class Picture:
def handle_picture(self):
# 打开图片模版
img1 = Image.open("./img/70.jpg")
img1 = img1.convert('RGBA')
# 打开原来的微信头像
img2 = Image.open("./img/old.jpg")
img2 = img2.convert('RGBA')
if img2.size != (700, 700): # 判断图片大小,统一改为 700*700
# 修改图片尺寸
size = (700, 700)
img2.thumbnail(size)
img2.show()
# 图片粘贴选区
loc = (0, 0, 700, 700)
# 将img1 粘贴到 img2
img2.paste(img1, loc, img1)
img2.show() # 显示图片
img2.save("new.png") # 保存生成的头像图片
t0 = Picture()
t0.handle_picture()

运行:





第四步,手动换微信图片:










等我写完代码,
帮几个朋友换了头像,
再去看朋友圈,看消息,是这样的:















哈哈哈哈,也太有意思了吧~
当然,也出现了些灰产:










当然,也有明白人:



最后附上《中华人民共和国国旗法》第十八条,
望各位悉知。



作者简介:老表,Python终身学习者,个人微信公众号:简说Pytyhon。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则