使用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基础教程之元组操作使用详解
Mar 25 Python
python批量同步web服务器代码核心程序
Sep 01 Python
Python循环语句中else的用法总结
Sep 11 Python
Numpy掩码式数组详解
Apr 17 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python数据化运营的重要意义
Nov 25 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
python中pycryto实现数据加密
Apr 29 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
php 正则 过滤html 的超链接
2009/06/02 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP7新功能总结
2019/04/14 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
pymysql模块使用简介与示例
2020/11/17 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
年度考核自我评价
2014/01/25 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
《灰雀》教学反思
2016/02/19 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
快速学习Oracle触发器和游标
2021/06/30 Oracle