使用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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
用python + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
在Django中编写模版节点及注册标签的方法
Jul 20 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
PyQt实现界面翻转切换效果
Apr 20 Python
详解django中url路由配置及渲染方式
Feb 25 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
详解python编译器和解释器的区别
Jun 24 Python
python 杀死自身进程的实现方法
Jul 01 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
Python Socket编程详解
Apr 25 Python
python使用BeautifulSoup 解析HTML
Apr 24 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实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
js获取和设置属性的方法
2014/02/20 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
python发送邮件功能实现代码
2016/07/15 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
函授本科自我鉴定
2013/11/03 职场文书
大学生村官事迹材料
2014/01/21 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
司法建议书范文
2014/05/13 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS