你还在@微信官方,我来教你用Python生成你想要的微信头像

前言

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

当然,这只是零零散散的部分截图,看到这些,一股热血洒了出来,我兴致勃勃的准备发朋友圈,请神仙微信官方给我也换个头像,就在这时,我手贱,一不小心刷了下朋友圈,结果:
我,好(lei)高(ge)兴(qu)啊! 原来是套路啊,后来仔细想想,也是,微信官方哪有那么多时候给我换头像。 当然,这也激发了我的程序员思维,别人能做,我为啥不能?

说干就干,拿起Python就往前冲。

需求/过程/代码

需求:
原始需求:

给自己的微信头像加个国旗或者70的logo(喜庆建国70周年)
解析:好像在和微信交互,太难了

简化需求:

1.给图片加上国旗或者70的logo
2.然后手动换头像
解析:要抠图,在图片指定位置加小图片,好像也比较难

简化需求+1:

1.朋友圈随便找两个已经换好头像的好友,下载他们的图像
2.抠图工具去除图像中人像部分,弄出基本模型
3.合并原头像与我们扣图生成的模型
4.手动换微信图片
解析:理论上没有问题

过程/代码
Step 1

1.朋友圈随便找两个已经换好头像的好友,下载他们的图像

太简单了,打开朋友圈,看看那个人在@微信官方,头像还换过来了,对,就是他在骗你,斗他。
Step 2

2.抠图工具去除图像中人像部分,弄出基本模型

嗯~我不太会用PS,

这是我抠出来的!惨不忍睹~
不过,我有个精通PS的女朋友呀~
还是女朋友厉害,三下两下就好了~夸夸~

获取素材文件:请在微信公众号:简说Python 回复:国庆

Step 3

3.合并原头像与我们扣图生成的模型

这个步骤是个漫长的过程,我发了社群看看有没有了解图像处理的朋友,发了朋友圈看看有没有志同道合的朋友~有些人回复了,确没有解决问题!
网上也找了一堆,没有对口的,在肚子叫声渐渐大起来时,我深思:我的需求难吗?我的需求奇葩吗? 就在这时候,一个读者朋友提供了一个他之前做的换证件照底色的代码样例,我看了一下处理方法,试了一下,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()

运行:

Step 4

4.手动换微信图片

后话

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

哈哈哈哈,太有意思了吧~ 当然,也有些灰产出现:
当然,也有明白人:
最后附上《中华人民共和国国旗法》第十八条,望各位悉知。

如果你嫌代码麻烦,也可以点击这里直接生成头像图片

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

转载需联系作者,微信号:jjxksa888,备注:转载,无备注不添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简说Python

多多少少都是爱,感谢充电。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值