使用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程序来判断文本的语种
Apr 07 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
详解python中docx库的安装过程
Nov 08 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
python实现猜数游戏
Mar 27 Python
python如何更新包
Jun 11 Python
python re模块和正则表达式
Mar 24 Python
Python 统计序列中元素的出现频度
Apr 26 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学习之运算符相关概念
2011/06/09 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
php实现的顺序线性表示例
2019/05/04 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
js实现简单扫雷
2020/11/27 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
浅析Python多线程下的变量问题
2015/04/28 Python
Python实现的爬虫功能代码
2017/06/24 Python
Python中join函数简单代码示例
2018/01/09 Python
python中reader的next用法
2018/07/24 Python
python斐波那契数列的计算方法
2018/09/27 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
Python selenium的基本使用方法分析
2019/12/21 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
降低python版本的操作方法
2020/09/11 Python
大学生工作求职信
2014/06/23 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis