使用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中的上下文管理器与else块
Aug 27 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
Python对象与引用的介绍
Jan 24 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
对django 模型 unique together的示例讲解
Aug 06 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
Python pygame实现中国象棋单机版源码
Jun 20 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
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
golang与PHP输出excel示例
2016/07/22 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
Python 时间处理datetime实例
2008/09/06 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
python实现合并两个排序的链表
2019/03/03 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
django 实现简单的插入视频
2020/04/07 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
《翻越远方的大山》教学反思
2014/04/13 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
广告宣传策划方案
2014/05/21 职场文书
科技节口号
2014/06/19 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL