使用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 自动安装 Rising 杀毒软件
Apr 24 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python jieba库用法及实例解析
Nov 04 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
Python TCP通信客户端服务端代码实例
Nov 21 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
jupyter 导入csv文件方式
Apr 21 Python
Python实现一个优先级队列的方法
Jul 31 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
利用python绘制正态分布曲线
Jan 04 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
非常详细的C#面试题集
2016/07/13 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
岗位职责怎么写
2014/03/14 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android