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

2019 年 2 月 1 日 CSDN


作者 | 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")

基本就这样,对表情包感兴趣的同学可通过网盘获取源代码:https://pan.baidu.com/s/144ifebObxVI_n_2WtoxCEQ,提取码:a59s。

作者简介:公众号【Ahab杂货铺】号主,在校学生沉迷于Python编程。



 热 文 推 荐 

☞ 和微信杠上的今日头条,凭什么成功? | 畅言

☞ Google 经典面试题解析

☞ 对于编程入门,这 763 位老程序员有话讲!

☞ 便利蜂“高数裁员”开天下先河!

☞ AI,被“横扫记录”反噬?

☞ 绑定1亿用户,15分钟众筹完毕,BitTorrent能否重生

☞ Gartner预测2019年全球IT支出将达到3.8万亿美元

☞ 她说:是的,嫁人当嫁程序员!

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!
登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
深度学习界圣经“花书”《Deep Learning》中文版来了
专知会员服务
233+阅读 · 2019年10月26日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
A Survey on Deep Learning for Named Entity Recognition
Arxiv
73+阅读 · 2018年12月22日
Arxiv
3+阅读 · 2018年11月29日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
6+阅读 · 2018年3月31日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
10+阅读 · 2017年12月29日
VIP会员
相关VIP内容
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
深度学习界圣经“花书”《Deep Learning》中文版来了
专知会员服务
233+阅读 · 2019年10月26日
相关资讯
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
相关论文
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
A Survey on Deep Learning for Named Entity Recognition
Arxiv
73+阅读 · 2018年12月22日
Arxiv
3+阅读 · 2018年11月29日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
6+阅读 · 2018年3月31日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
10+阅读 · 2017年12月29日
Top
微信扫码咨询专知VIP会员