使用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之有容乃大的list(1)
Sep 14 Python
粗略分析Python中的内存泄漏
Apr 23 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
python利用lxml读写xml格式的文件
Aug 10 Python
Python3.6简单反射操作示例
Jun 14 Python
python爬虫 正则表达式解析
Sep 28 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
解决python 找不到module的问题
Feb 12 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
python 利用Pyinstaller打包Web项目
Oct 23 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
风格模板初级不完全修改教程
2006/10/09 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
深入密码加salt原理的分析
2013/06/06 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python 错误和异常小结
2013/10/09 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
工厂采购员岗位职责
2014/04/08 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
Spring中bean集合注入的方法详解
2022/07/07 Java/Android