使用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中使用NLTK库实现对词干的提取的教程
Apr 08 Python
详解Django中的权限和组以及消息
Jul 23 Python
详解Python迭代和迭代器
Mar 28 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
Django 跨域请求处理的示例代码
May 02 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
python flask安装和命令详解
Apr 02 Python
python装饰器常见使用方法分析
Jun 26 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
解析php中的escape函数
2013/06/29 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
python脚本第一行如何写
2020/08/30 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
介绍一下linux的文件系统
2015/10/06 面试题
公务员综合考察材料
2014/02/01 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
军训通讯稿范文
2015/07/18 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS