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

    文章

    525

    浏览量

    55985
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89551

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、开发前准备(5
    的头像 发表于 10-21 16:59 383次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    Pico Technology发布Python软件pyPicoSDK

    近日,全球领先的基于 PC 的仪器供应商Pico Technology 官方发布了 pyPicoSDK,这是一款旨在简化 PicoScopes 应用的 Python 软件。pyPicoSDK 在
    的头像 发表于 09-29 15:03 638次阅读

    VSCode 编写自己的 KiCad 插件(下)

    /apis-and-binding/pcbnew/index.html 插件文件夹结构如下:     kicad_plugin/     #  插件目录  (Python  )     - __init__.py   #  此文件在导入软
    的头像 发表于 06-19 11:44 2441次阅读
    <b class='flag-5'>用</b> VSCode 编写<b class='flag-5'>自己</b>的 KiCad 插件(下)

    VSCode编写自己的KiCad插件(上)详细步骤教程

    “  很多小伙伴都想自己开发 KiCad 插件,但不知从何入手。本文由华秋电子的另一位 KiCad 开发者波波同学撰写,分享了如何快速搭建环境,并开发一个简单的插件。  ” 目标     编写一个
    的头像 发表于 06-17 11:10 2713次阅读
    <b class='flag-5'>用</b>VSCode编写<b class='flag-5'>自己</b>的KiCad插件(上)详细步骤教程

    天津移动+华为推出全国首个球迷专属5G-A极速体验

    极速”,以“技术+场景”双轮驱动革新5G-A体验经营模式。 球迷专属“5G-A场馆极速”的推出,不仅实现了5G-Advanced(5G-A)技术的场景化落地,更标志着运营商从“流量经营”向“体验经营”的跨越式转型。实测数据显
    的头像 发表于 05-19 09:50 1091次阅读

    树莓派4 打造专属流媒体控制台!

    树莓派体验DIY智能科技!如今市面上有各种各样的流媒体控制台,但购买现成的哪有自己从零开始制作的有趣呢?至少,这似乎是树莓派创客社区的精神所在,就像创客兼开发者Last-Shake-9874所展示
    的头像 发表于 05-11 08:33 424次阅读
    <b class='flag-5'>用</b> 树莓派4 打造<b class='flag-5'>专属</b>流媒体控制台!

    如何用FastMCP快速开发自己的MCP Server?

    的感受到了基于AI大模型和 MCP可以非常方便的构建自己的AI智能体工作流。在此基础上,不少读者咨询,如何将自己已有的工具或函数,制作成MCP Server给AI大模型调用呢?本文从零开始介绍
    的头像 发表于 05-07 16:07 2435次阅读
    如何用FastMCP快速开发<b class='flag-5'>自己</b>的MCP Server?

    rootfs镜像制作其实没那么难

    镜像文件之外,通常还会提供文件系统压缩。镜像文件可以直接用于烧写到目标板,而文件系统压缩则可以进行部分修改,修改后重新制作镜像文件烧写。这里只讲直接编译好的二
    的头像 发表于 04-03 11:37 889次阅读
    rootfs镜像<b class='flag-5'>制作</b>其实没那么难

    树莓派镜像的制作、烧录及运行

    你是否想过自己动手打造一个专属的操作系统镜像?无论是为极客项目定制开发环境,还是让老旧设备焕发新生,系统镜像定制都是极客玩家的必备技能。
    的头像 发表于 03-27 16:00 2104次阅读

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    RaspberryPiOS预装了Python,你需要使用其虚拟环境来安装。今天出版的最新一期《TheMagPi》杂志刊登了我们文档负责人NateContino撰写的一篇实用教程,帮助你入门
    的头像 发表于 03-25 09:34 627次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    是否可以使用OpenVINO™部署管理器在部署机器上运行Python应用程序?

    使用 OpenVINO™部署管理器创建运行时软件。 将运行时转移到部署机器中。 无法确定是否可以在部署机器上运行 Python 应用程序,而无需安装OpenVINO™ Toolkit 和
    发表于 03-05 08:16

    在深度学习工作台中安装Python软件报错怎么解决?

    在 DL 工作台中导入的模型。 在准备将导入的模型转换为中间表示 (IR) 时收到错误: Cannot install packages for python /home/workbench/.workbench/environments/2/bin/python
    发表于 03-05 07:32

    DLP6500能否Python编程进行开发,是否有API接口?

    本人第一次接触DLP的开发板,想知道DLP6500这款板子能否Python编程进行开发,是否有API接口?
    发表于 02-28 06:58

    Python Connector for InterBase连接解决方案

    ,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全符合 Python DB API 2.0 规范,并作为 Windows、macOS 和 Linux 的 wheel 分发。 特征 高性能
    的头像 发表于 01-22 14:34 705次阅读

    探秘定制锂电池实体店:开启专属电力新体验

    定制锂电池实体店为我们提供了一种全新的电池选择方式,让我们能够摆脱传统锂电池的束缚,拥有一款真正符合自己需求的专属电力解决方案。如果你正在为电池的适配性、性能等问题烦恼,不妨走进身边的定制锂电池实体店,开启属于你的专属电力新体验
    的头像 发表于 01-15 17:06 913次阅读
    探秘定制锂电池实体店:开启<b class='flag-5'>专属</b>电力新体验