使用Python制作表情包实现换脸功能
作者:云开IT 发布时间:2022-01-14 09:10:18
“表情包”是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓“天可不聊,图不可不斗”,几乎任何对话都会出现表情包的身影,一言不合就斗图,自己也会在聊天中发几个表情包,可是总会造成一些小误会,比如下面的图
有好多朋友看到这个表情包之后误以为这也是我用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()
第二个图是斜眼笑,表达的意思你懂得。
来看第三幅图,这个图是使用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制作表情包实现换脸功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://segmentfault.com/a/1190000019805493
猜你喜欢
- MySQL安全性指南(2) 作 者: 晏子2.1.3 数据库和表权限下列权限运用于数据库和表上的操作。ALTER允许你使用ALTER TAB
- 将图片读入到Dom中,并将其存为xml文件1、需要命名空间using System.Text;using System.IO;using S
- 本文实例讲述了php从文件夹随机读取文件的方法。分享给大家供大家参考。具体实现方法如下:function RandomFile($folde
- Requests具有完备的中英文文档, 能完全满足当前网络的需求, 它使用了urllib3, 拥有其所有的特性!最近在学python自动化,
- 在面向对象的理论中,有两个核心的概念:类和实例。类可以看成是一个模板,实例就是根据这个模板创建出来的对象。但在 Python 里面,类和实例
- 当来自应用程序的第一个连接控制锁而第二个连接需要相冲突的锁类型时,将发生阻塞。其结果是强制第二个连接等待,而在第一个连接上阻塞。不管是来自同
- 前言上项目的时候,遇见一次需求,需要把在线的 其中一个 collection 里面的数据迁移到另外一个collection下,于是就百度了看
- 针对border边框属性在浏览器中的渲染方式很早以前就开始在QQ群中看到大家在讨论,而我也一直以border:0 none;的方式处理。其中
- 2.彻底弄懂CSS盒子模式二(导航栏实例) 3.彻底弄懂CSS盒子模式三(浮动的表演和清除的自述) 4.彻底弄懂CSS盒子模式四(绝对定位和
- 最近人工智能等多门课需要复现论文,近两年的论文很多都是基于Pytorch环境做的实验,所以,这里总结一下Pytorch的安装教程,做好最快、
- 这篇文章主要介绍了Python for循环搭配else常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 4.彻底弄懂CSS盒子模式四(绝对定位和相对
- jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码part_1:专门用于生成一个验证码图片的类:VerificationCode
- 有关 Web 字体的话题正在增多,对 Web 设计师来说,他们并不关注技术细节,不管是 TrueType 的 Hinting 技术
- 通过本接口可以查询圆通快递、申通快递、ems快递、韵达快递等快递单号查询信息,无需其他额外开发,非常方便首先到www.aikuaidi.cn
- 许多人在编写程序的时候因为贪图方便或不小心使用到程式的保留字,有时明明程序没有错,就是无法正确执行。您知道有哪些常见的保留字吗? 下面的都是
- 本文实例讲述了asp.net C#实现解压缩文件的方法。一共给大家介绍了三段代码,一个是简单的解压缩单个zip文件,后一个可以解压批量的大量
- 利用python查找电脑里的文件非常方便比如在我的电脑:D:\软件 文件夹里有非常非常多的软件。我忘记某个软件叫什么名字了,只记得文件名称里
- 在备份数据库的时候,数据表中可能存在这样的值array('a'='b','c'='d
- 数据库连接字符串的常见问题和解决方法:基本知识1:SQL Server数据库的身份验证方式,分windows验证,SQL Server验证两