使用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 中__name__ = '__main__' 的作用
Jul 05 Python
在Python中使用pngquant压缩png图片的教程
Apr 09 Python
Python判断字符串与大小写转换
Jun 08 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
Python从零开始创建区块链
Mar 06 Python
ipython和python区别详解
Jun 26 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
Django web自定义通用权限控制实现方法
Nov 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常用的url处理函数总结
2014/11/19 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
学习ExtJS Window常用方法
2009/10/07 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
中国旅游网站:同程旅游
2016/09/11 全球购物
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
社区党务公开实施方案
2014/03/18 职场文书
Mysql基础之常见函数
2021/04/22 MySQL