使用Python制作表情包实现换脸功能

作者:云开IT 时间:2022-01-14 09:10:18 

使用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制作表情包实现换脸功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://segmentfault.com/a/1190000019805493

标签:python,表情包,换脸
0
投稿

猜你喜欢

  • 修改SQL Server 2005 sa用户密码的方法

    2008-12-10 14:41:00
  • asp base64加解密函数代码

    2011-03-31 11:02:00
  • asp中access升级到sql server后要做的工作

    2007-08-11 13:35:00
  • 数据库中聚簇索引与非聚簇索引的区别[图文]

    2012-02-25 19:38:23
  • 处理Python中的URLError异常的方法

    2021-06-04 03:33:15
  • SQL Server管理 这些你懂吗?

    2011-07-01 13:40:23
  • php实现文件下载更能介绍

    2023-08-18 14:30:21
  • Python解析命令行读取参数之argparse模块

    2021-12-17 22:15:32
  • Design IT. (8),一匹“更快的马”

    2009-02-11 12:19:00
  • MySql数据库基本命令集会

    2011-08-05 18:43:23
  • python实现dnspod自动更新dns解析的方法

    2021-10-24 14:19:47
  • MSSQL优化之探索MSSQL执行计划(转)

    2011-11-03 17:16:21
  • 详解python读写json文件

    2022-11-01 16:18:53
  • go build失败报方法undefined的解决过程

    2023-06-18 15:07:36
  • 教你快速掌握如何向MySQL的表中录入数据

    2008-11-27 16:45:00
  • 网站升级兼容firefox经验小谈

    2007-10-28 20:28:00
  • asp精妙的SQL语句例子

    2008-03-04 17:42:00
  • 谈谈网页设计中的字体应用 (1) Font Set

    2009-11-24 12:55:00
  • opencv之为图像添加边界的方法示例

    2022-03-25 03:37:20
  • go语言题解LeetCode1275找出井字棋的获胜者示例

    2023-07-22 12:30:41
  • asp之家 网络编程 m.aspxhome.com