社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

斗图?教你用 Python 制作表情包

CDA数据分析师 • 7 年前 • 675 次点击  

作者 | Ahab

本文转自公众号 Ahab杂货铺


“表情包”是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓“天可不聊,图不可不斗”,几乎任何对话都会出现表情包的身影,一言不合就斗图,自己也会在聊天中发几个表情包,可是总会造成一些小误会,比如下面的图

有好多朋友看到这个表情包之后误以为这也是我用 Python 做的,其实不然,这个图就是网上普通的表情包,但是今天我要用 Python 做几个表情包。

今天制作表情包用到的技术还是我们经常使用的 Turtle 库,可以从之前的文章除了画佩奇我们还要玩点更高级的,去学习 Turtle 的常用语法,然后就是 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")

基本就这样,如果对表情包感兴趣可后台回复关键字“表情包”获取源代码。





CDA 课程咨询丨赵老师

联系电话:13381275813
扫描二维码






更多精彩文章

免费!10本必读的机器学习书籍(附下载)

第九届CDA考试状元访谈 | 看看状元们都说了啥

求职 | 一份理想的数据科学家简历中要包括哪些技能?

盘点 | 过去一年,AI 圈都发生了哪些事儿(附年度报告下载)

分析了全部十季的剧集,我们发现《老友记》中的C位原来是TA!




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/fs5umC1GnZ
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/28533