使用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中的Descriptor描述符学习教程
Jun 02 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
Python实现二维数组输出为图片
Apr 03 Python
Python多进程fork()函数详解
Feb 22 Python
python使用threading.Condition交替打印两个字符
May 07 Python
python第三方库学习笔记
Feb 07 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
python自动点赞功能的实现思路
Feb 26 Python
Python threading.local代码实例及原理解析
Mar 16 Python
keras 多gpu并行运行案例
Jun 10 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
Python数据库封装实现代码示例解析
Sep 05 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
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
php去除数组中重复数据
2014/11/18 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
简单了解Python write writelines区别
2020/02/27 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Django视图、传参和forms验证操作
2020/07/15 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
李宁官方网店:中国运动品牌
2017/11/02 全球购物
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
计算机网络及管理学专业求职信
2014/06/05 职场文书
童年读书笔记
2015/06/26 职场文书
Golang 实现WebSockets
2022/04/24 Golang
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript