使用Python制作表情包实现换脸功能


Posted in Python onJuly 19, 2019

使用Python制作表情包实现换脸功能

“表情包”是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓“天可不聊,图不可不斗”,几乎任何对话都会出现表情包的身影,一言不合就斗图,自己也会在聊天中发几个表情包,可是总会造成一些小误会,比如下面的图

使用Python制作表情包实现换脸功能

有好多朋友看到这个表情包之后误以为这也是我用Python做的,其实不然,这个图就是网上普通的表情包,但是今天我要用Python做几个表情包。

今天制作表情包用到的技术还是之前提到的Turtle库,可以从之前的文章除了画佩奇我们还要玩点更高级的,去学习Turtle的常用语法,然后就是PIL库,之前通过这篇文章:Python骚操作|用Python来P图也介绍过PIL的几个用法,今天的案例算是做一个小小的复习。

这是一个捂脸的表情,可以表达内心千万只 * 奔腾而过,使用Turtle来实现,可以将这个图分成以下几个部分:脸,嘴巴,牙齿,两边的眼泪,手指和手腕,完整的代码和语法不过多解释,贴一个画脸的代码。

# 画脸
turtle.speed(5)
turtle.setup(900, 600, 200, 200)
turtle.pensize(5)
turtle.right(90)
turtle.penup()
turtle.fd(100)
turtle.left(90)
turtle.pendown()
turtle.begin_fill()
turtle.pencolor("#B26A0F") # head side color
turtle.circle(150)
turtle.fillcolor("#F9E549") # face color
turtle.end_fill()

使用Python制作表情包实现换脸功能

第二个图是斜眼笑,表达的意思你懂得。

来看第三幅图,这个图是使用PIL库来生成的,其实这两个图是两张图拼起来的。首先呢,我们需要找两张图片,一张做表情包的背景,一张做表情。我们就以萌萌哒的熊猫头作为背景,然后试着在背景图上加入金馆长嘻哈表情。

现在我们要把金馆长的表情叠加在熊猫头的背景图中,需要注意的是要在代码中控制好金馆长的表情叠加位置,不然会遮盖住其他轮廓。

from PIL import Image,ImageDraw,ImageFont
img = Image.open("640.jpg")
jgz = Image.open("641.jpg")
img.paste(jgz,(63,46))

图片的下方是留有一部分空白的,我们可以添加一些文字。

from PIL import Image,ImageDraw,ImageFont
 img = Image.open("640.jpg")
 jgz = Image.open("641.jpg")
 img.paste(jgz,(63,46))
#控制表情的叠加位置
 draw = ImageDraw.Draw(img)
 font = ImageFont.truetype("simyou.TTF",24)
 draw.text((16,200),"Ahab杂货铺!", fill = (0,0,0), font = font)
 #控制文字添加位置
 img.show()
 img.save("生成的表情包.jpg")

使用Python制作表情包实现换脸功能

总结

以上所述是小编给大家介绍的使用Python制作表情包实现换脸功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
详解Python sys.argv使用方法
May 10 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
python计算二维矩形IOU实例
Jan 18 Python
jupyter notebook 重装教程
Apr 16 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
解决Django一个表单对应多个按钮的问题
Jul 18 #Python
Django工程的分层结构详解
Jul 18 #Python
django mysql数据库及图片上传接口详解
Jul 18 #Python
解决django中ModelForm多表单组合的问题
Jul 18 #Python
浅谈Django中view对数据库的调用方法
Jul 18 #Python
django-rest-framework解析请求参数过程详解
Jul 18 #Python
python Django中models进行模糊查询的示例
Jul 18 #Python
You might like
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
php7下的filesize函数
2019/09/30 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python中提高pip install速度
2020/02/14 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
三个Unix的命令面试题
2015/04/12 面试题
计算机应用专业推荐信
2013/11/13 职场文书
大学四年个人自我小结
2014/03/05 职场文书
质量承诺书范文
2014/03/27 职场文书
初三开学计划书
2014/04/27 职场文书
技能比武方案
2014/05/21 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
节约用水广告语60条
2019/11/14 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
jquery插件实现代码雨特效
2021/04/24 jQuery
Java中try catch处理异常示例
2021/12/06 Java/Android
MySQL学习之基础命令实操总结
2022/03/19 MySQL