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

前言

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

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

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

需求/过程/代码

需求:

原始需求:

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

简化需求:

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

简化需求+1:

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

过程/代码

Step 1

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

你还在@微信官方,我来教你用Python生成你想要的微信头像_第4张图片
太简单了,打开朋友圈,看看那个人在@微信官方,头像还换过来了,对,就是他在骗你,斗他。
Step 2

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

嗯~我不太会用PS,

你还在@微信官方,我来教你用Python生成你想要的微信头像_第5张图片
这是我抠出来的!惨不忍睹~
你还在@微信官方,我来教你用Python生成你想要的微信头像_第6张图片
不过,我有个精通PS的女朋友呀~
还是女朋友厉害,三下两下就好了~夸夸~

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

Step 3

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

你还在@微信官方,我来教你用Python生成你想要的微信头像_第7张图片
这个步骤是个漫长的过程,我发了社群看看有没有了解图像处理的朋友,发了朋友圈看看有没有志同道合的朋友~有些人回复了,确没有解决问题!
你还在@微信官方,我来教你用Python生成你想要的微信头像_第8张图片
你还在@微信官方,我来教你用Python生成你想要的微信头像_第9张图片
网上也找了一堆,没有对口的,在肚子叫声渐渐大起来时,我深思:我的需求难吗?我的需求奇葩吗? 就在这时候,一个读者朋友提供了一个他之前做的换证件照底色的代码样例,我看了一下处理方法,试了一下,OK! 这里特别感谢:**Dime** 同学的帮助。
你还在@微信官方,我来教你用Python生成你想要的微信头像_第10张图片
你还在@微信官方,我来教你用Python生成你想要的微信头像_第11张图片
具体代码:
# -*- 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生成你想要的微信头像_第12张图片
Step 4

4.手动换微信图片

你还在@微信官方,我来教你用Python生成你想要的微信头像_第13张图片

后话

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

你还在@微信官方,我来教你用Python生成你想要的微信头像_第14张图片
你还在@微信官方,我来教你用Python生成你想要的微信头像_第15张图片
你还在@微信官方,我来教你用Python生成你想要的微信头像_第16张图片
哈哈哈哈,太有意思了吧~ 当然,也有些灰产出现:
你还在@微信官方,我来教你用Python生成你想要的微信头像_第17张图片
你还在@微信官方,我来教你用Python生成你想要的微信头像_第18张图片
当然,也有明白人:
你还在@微信官方,我来教你用Python生成你想要的微信头像_第19张图片
最后附上《中华人民共和国国旗法》第十八条,望各位悉知。
你还在@微信官方,我来教你用Python生成你想要的微信头像_第20张图片

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

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

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

你可能感兴趣的:(Python)