Python自动生产表情包


Posted in Python onMarch 17, 2017

作为一个数据分析师,应该信奉一句话——“一图胜千言”。不过这里要说的并不是数据可视化,而是一款全民向的产品形态——表情包!!!!

表情包不仅仅是一种符号,更是一种文化——是促进社交乃至社会发展的动力之一,就像懒。我们坚持认为,一张优秀的表情包,应该是一幅艺术品,是那忽如一夜春风来的灵感爆发,是那嘈嘈切切错杂弹的情思激荡,是那直挂云帆济沧海的壮志豪情,是那一览天下众山小的荣耀胜利——是不可以容忍码农用其惯有的形式固定、流程固定、毫无美感、毫无艺术的变幻和惊喜的直线思维解构。然而,在生产表情包的过程中,如果只是机械地把图片导进PS——改文字——导出,那也太low了,所以还是把这些很low的机械化的重复动作交给程序来做吧。

之前一直以为图像的自动处理,要靠JavaScript脚本控制PS或者AI;后来发现Python其实也可以做一些简单的图像处理,虽然可能比不上MATLAB强大。于是对于图像处理,复杂的部分依然在PS或者AI中人工完成,简单的处理就可以用Python程序完成。

在开工之前,先让我们瞻仰膜拜一下表情包界里程碑式的人物,感谢他们大力推动了表情包在历史潮流中的显著进步,他们的英名将长期被人民大众津津乐道,他们的音容笑貌将在人们的日常社交中经久不衰,他们的卓越贡献将永远镌刻于表情包史的丰碑上!

Python自动生产表情包

(如果表情可以收版权费的话,那就不用辛辛苦苦地去打球、拍戏、播音了……)

素材准备

这里我们以网络上流传最广的金馆长表情为中心,以萌萌哒的熊猫头作为背景,底下加上文字就能构成一张表情包。

Python自动生产表情包

Python自动生产表情包

然后用PS处理一下图片大小,模板大小设为250*250,表情裁剪一下白边。

图片叠加

第一步工作是把表情叠加到模板上,注意到我们的表情素材是白底而不是透明,所以位置要控制好,不然会遮盖住轮廓。

from PIL import Image, ImageDraw, ImageFont
img = Image.open(".\background.jpg")
jgz = Image.open(".\jgz.jpg")
img.paste(jgz,(73,42))
img.show()

这样就会看到合成的图片了:

Python自动生产表情包

这张图片下方还有一截留白,那是给我们最后一步添加文字用的。come on,魔性的笑容已经呈现,接下来就是最后一击,are you OK?! 哦不,are you ready?!

文字叠加

尽管表情包的核心是表情,然而一行简短而又震撼的文字往往能起到直击灵魂的画龙点睛的作用。

draw = ImageDraw.Draw(img) 
ttfront = ImageFont.truetype('simhei.ttf', 24) 
draw.text((32, 190),"我的内心毫无波动\n 甚至还想笑",fill=(0,0,0), font=ttfront) 
img.show()
img.save(".\Python生成的表情包.jpg")

这样就生成了一张完整的表情包了:

Python自动生产表情包

其中draw.text()是往图层里输入文字,所以可以不断执行这条命令以在图片里添加多层文字。

你还可以导入多张表情,以及多个文本台词,这样就可以大规模批量自动生产表情包了……

问题升华

你以为到这里就结束了吗?too young啊!请童鞋们思考这个问题:

  • 表情包下留白的空间是有限的
  • 中文和英文以及标点符号占据的空间不同
  • 如果文本太长,就需要换行;可是如果行太多,图片就放不下

因此,当你脑中突然闪现出一句既包含中文也有英文还有N多标点符号以增强语气的台词时,怎么设计一个算法,用来寻找合适的字号大小,文本插入位置,文本在哪些地方换行,使文本能在有限空间居中展示,而且还要满足一定的观感呢?

Python自动生产表情包

算了,还是在这里结束吧……

于是,通过这篇严肃正经的教程,我们学会了使用Python进行简单图像处理的方法,更get到一项实用的神技:自动生产表情包。

最重要的是,老夫经常说的“信不信我分分钟批量做你大堆的表情包”,终于成为现实了……

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Python 相关文章推荐
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
Python使用PIL库实现验证码图片的方法
Mar 11 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
python 移除字符串尾部的数字方法
Jul 17 Python
对python中类的继承与方法重写介绍
Jan 20 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Python3 搭建Qt5 环境的方法示例
Jul 16 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
pytorch实现ResNet结构的实例代码
May 17 Python
Python实现的异步代理爬虫及代理池
Mar 17 #Python
Python 专题一 函数的基础知识
Mar 16 #Python
python 专题九 Mysql数据库编程基础知识
Mar 16 #Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 #Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 #Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 #Python
python开发利器之ulipad的使用实践
Mar 16 #Python
You might like
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
PHP7 标准库修改
2021/03/09 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
移动web开发之touch事件实例详解
2018/01/17 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
Python requests库用法实例详解
2018/08/14 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
优秀英文求职信范文
2015/03/19 职场文书
青年志愿者活动感想
2015/08/07 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
Django+Celery实现定时任务的示例
2021/06/23 Python
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技