0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么用Python制作自己的专属表情包?

马哥Linux运维 来源:杨湘祁 作者:电子发烧友 2019-03-01 17:31 次阅读

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

表情包不仅仅是一种符号,更是一种文化,是促进社交乃至社会发展的动力之一,就像懒。

我们坚持认为,一张优秀的表情包,应该是一幅艺术品,是那忽如一夜春风来的灵感爆发,是那嘈嘈切切错杂弹的情思激荡,是那直挂云帆济沧海的壮志豪情,是那一览天下众山小的荣耀胜利,是不可以容忍码农用其惯有的形式固定、流程固定、毫无美感、毫无艺术的变幻和惊喜的直线思维解构。

然而,在生产表情包的过程中,如果只是机械地把图片导进PS --> 改文字--> 导出,那也太low了,所以还是把这些很low的机械化的重复动作交给程序来做吧。

之前一直以为图像的自动处理,要靠JavaScript脚本控制PS或者AI;后来发现Python其实也可以做一些简单的图像处理,虽然可能比不上 MATLAB 强大。

于是对于图像处理,复杂的部分依然在PS或者AI中人工完成,简单的处理就可以用Python程序完成。

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

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

素材准备

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

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

图片叠加

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

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

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

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

文字叠加

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

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

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

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

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

问题升华

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

  1. 表情包下留白的空间是有限的

  2. 中文和英文以及标点符号占据的空间不同

  3. 如果文本太长,就需要换行;可是如果行太多,图片就放不下

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

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

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

最重要的是,老夫经常说的"信不信我分分钟批量做你大堆的表情包",终于成为现实了……对此,我想说,完了我爱上了Python!因为Python也太好玩了,方向太多了!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • javascript
    +关注

    关注

    0

    文章

    519

    浏览量

    53885
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84787

原文标题:不要和会Python的斗图之自动生成表情

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NE555制作点焊机

    NE555制作点焊机,电路简单,容易制作。需要一个12v的铅酸蓄电池。实际焊接效果很好。
    发表于 11-08 15:05 5次下载

    使用Python搭建简易本地http服务器,升级WIPI模组

    文件夹,同时复制升级到该文件夹下 4 WIN+R打开cmd,打开命令行,执行命令(如图,根据自己建立的文件夹来输入路径) F: cd httpserver 如果Python
    的头像 发表于 09-29 15:38 589次阅读
    使用<b class='flag-5'>Python</b>搭建简易本地http服务器,升级WIPI模组

    第二届大会回顾第25期 | OpenHarmony上的Python设备应用开发

    Python以其简单、易学和功能强大而闻名,有着广泛的用户群体。采用Python开发有助于降低OpenHarmony的学习门槛。如何在OpenHarmony上Python开发设备应用
    的头像 发表于 08-27 11:53 724次阅读
    第二届大会回顾第25期 | OpenHarmony上的<b class='flag-5'>Python</b>设备应用开发

    使用Python进行Ping测试

    )请求,然后等待目标主机返回响应,从而测量网络的延迟和丢情况。随着Python编程语言的广泛应用,越来越多的网络工程师开始使用Python
    的头像 发表于 08-12 17:56 533次阅读
    使用<b class='flag-5'>Python</b>进行Ping测试

    python写验证环境cocotb

    本文介绍了cocotb的安装、python tb文件的写法、xrun仿真cocotb的脚本等,我们来看看体验如何。
    的头像 发表于 07-24 09:38 564次阅读
    <b class='flag-5'>用</b><b class='flag-5'>python</b>写验证环境cocotb

    如何在UART上制作一个侦听器来接收数据

    我想在 UART 上制作一个侦听器来接收数据。 我该怎么做?有没有任何形式的假多线程?
    发表于 07-19 09:54

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现
    的头像 发表于 07-18 14:53 433次阅读

    旷视AI开源新突破:上传照片即可生成表情视频!

    为了展示其泛化性,MegActor甚至可以将VASA中的人物肖像和视频组合生成,得到生动的表情视频。即使与阿里EMO的官方案例相比,MegActor也能生成近似的效果。
    的头像 发表于 07-12 11:20 397次阅读
    旷视AI开源新突破:上传照片即可生成<b class='flag-5'>表情</b><b class='flag-5'>包</b>视频!

    pycharm进行python爬虫的步骤

    以下是使用PyCharm进行Python爬虫的步骤: 安装PyCharm和Python 首先,您需要安装PyCharm和Python。PyCharm是一个流行的Python集成开发环境
    的头像 发表于 07-11 10:11 880次阅读

    安装依赖的Python软件时报错如何解决?

    安装依赖的 Python 软件,出现了如下错误,请问如何解决,谢谢! Command \"E:/msys32/mingw32/bin/python2.7.exe E:/msys32
    发表于 06-26 07:32

    机器人动态表情模块JZRF-----江智公司开始全面对外开放提供

    机器人动态表情模块江智公司开始全面对外开放提供江智机器人公司在多年单一静态表情板基础上,通过近1年左右的动态表情变化的研究实际测试,现正式对外提供不同规格(也可按客户规格定制)表情板结
    的头像 发表于 06-19 08:14 277次阅读
    机器人动态<b class='flag-5'>表情</b>模块JZRF-----江智公司开始全面对外开放提供

    ESP32下如何加自定义Python库?

    我看官方有提供Micropython的bin文件,但我想根据自己外设扩充一下Python库,这个应该从哪里入手? 之前做过RTT系统的python库扩充,RTT有提供Micropython的源代码,直接在里面加
    发表于 06-18 06:27

    请问可以利用RT-Thread修改属于自己的开发板

    导致工程用起来很别扭 所以我想了解,是否有教程有说明怎么制作属于自己的板卡的硬件呢 例如图片上面说明的,我的板子是串口4,但是我不想每次都得修改一次。所以是否有说明怎么修改这个配置的呢
    发表于 02-26 08:19

    如何制作自己的Arduino电容计

    在这个项目中,您将学习如何制作自己的Arduino电容计(测量电容器的值,范围从pF到1000的uF)。一般来说,电子爱好者喜欢设计自己的小工具而不是购买。在这个项目中,我们使用两种电容测量方法,即
    的头像 发表于 02-25 15:10 1616次阅读
    如何<b class='flag-5'>制作</b><b class='flag-5'>自己</b>的Arduino电容计

    DC-DC产品选型手册,选择您的专属芯片

    DC-DC产品选型手册,选择您的专属芯片
    的头像 发表于 01-20 08:06 879次阅读
    DC-DC产品选型手册,选择您的<b class='flag-5'>专属</b>芯片