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

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

3天内不再提示

【大神课堂】深入浅出教你进行Python自动生成表情包

人工智能和机器人研究院 来源:未知 作者:steve 2018-04-20 14:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

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

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

素材准备

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

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

图片叠加

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

from PIL import Image, ImageDraw, ImageFontimg = Image.open(".ackground.jpg")jgz = Image.open(".jgz.jpg")img.paste(jgz,(73,42))img.show()

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

这张图片下方还有一截留白,那是给我们最后一步添加文字用的。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啊!请童鞋们思考这个问题:

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

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

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

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

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

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

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

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

    关注

    57

    文章

    4857

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何选择适合的智驾仿真工具进行场景生成和测试?

    自动驾驶技术日益发展的背景下,选择合适的智驾仿真工具进行场景生成和测试显得尤为重要。该工具不仅需要支持高精度的场景重建,还需满足多种环境条件和传感器模型的兼容性。本文将深入探讨如何评
    的头像 发表于 11-25 10:32 148次阅读
    如何选择适合的智驾仿真工具<b class='flag-5'>进行</b>场景<b class='flag-5'>生成</b>和测试?

    语法纠错和testbench的自动生成

    ,回到写好的Verilog代码,按住ctrl+shift+p,在弹出的搜索框里输入testbench。 点击后会自动将当前模块的testbench生成在终端框内。 当然,本质上该插件还是通过python来实现的,因此
    发表于 10-27 07:07

    Pico Technology发布Python软件pyPicoSDK

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

    【“芯”篇章】中星联华走进高校系列-电子科技大学站

    》-深入浅出讲解ADC/DAC/PLL/SerDes、高速信号完整性大讲堂。聚焦理论知识,拓宽实战视野现场,中星联华技术支持总监苏水金以其丰富的行业经验与扎实的专
    的头像 发表于 09-17 07:04 423次阅读
    【“芯”篇章】中星联华走进高校系列-电子科技大学站

    张飞实战电子创始人莅临其利天下,赋能无刷马达技术发展--【其利天下】

    ,结合实际案例,深入浅出地交流了无刷马达驱动的设计思路、调试方法以及常见问题的解决策略。▲张飞实战电子创始人(中间)与其利天下CEO总(右一)合影张飞老师本人是一位专家
    的头像 发表于 07-24 18:18 884次阅读
    张飞实战电子创始人莅临其利天下,赋能无刷马达技术发展--【其利天下】

    产学研融合!思尔芯数字EDA工具走进北航课堂

    EDA工具的创新成果。通过深入浅出的讲解与沉浸式学习中,同学们深入理解了思尔芯数字EDA工具在芯片设计中的关键作用。培训聚焦思尔芯的PegaSim芯神驰软件仿真工具。
    的头像 发表于 05-26 09:45 1468次阅读
    产学研融合!思尔芯数字EDA工具走进北航<b class='flag-5'>课堂</b>

    深入浅出解析:为什么高精度测量要选择12bit示波器?

    示波器是电子工程师的核心工具,能够直观观察信号特性。本文通过对比实验,分析12bit和8bit示波器在信号捕捉和波形还原方面的关键差异,解释为何高精度测量工作中,12bit示波器能提供更可靠的测量结果。8bit与12bit:数字背后的真相什么是示波器的“bit数”时?简单来说,这是示波器ADC(模数转换器)的分辨能力,决定了仪器能够识别的最小电压变化。这个看
    的头像 发表于 05-22 11:40 788次阅读
    <b class='flag-5'>深入浅出</b>解析:为什么高精度测量要选择12bit示波器?

    门老师教你快速看懂电子电路图

    本文从最基本的电容电阻开讲,包含模电数电,以及部分电气知识点,深入浅出。 资料介绍: 全文共分7课,以老师授课和师生交流的形式系统地介绍了电子电路识图方面的基本知识和技能,包括电路图的基本概念和要素
    发表于 05-16 15:17

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    全面解析新概念模拟电路(建议下载!)

    全文共五册,近50万字,一样的风趣幽默,一样的social化语言,深入浅出地将枯燥深奥的模电知识讲得简单易学。 《新概念模拟电路》内容包含了《晶体管》、《负反馈和运算放大器》、《运放电路的频率特性
    发表于 04-16 13:37

    深入浅出解析低功耗蓝牙协议栈

    深入Bluetooth LE协议栈各个组成部分之前,我们先看一下Bluetooth LE协议栈整体架构。 如上图所述,要实现一个Bluetooth LE应用,首先需要一个支持Bluetooth
    的头像 发表于 04-09 14:49 1001次阅读
    <b class='flag-5'>深入浅出</b>解析低功耗蓝牙协议栈

    2025 中国华东智能家居创新技术研讨会现场直击,高精度算法如何改变生活?--其利天下

    在此次展会上,我司技术总监冯建武先生带来了《智能家居的 “心脏” 革命:高精度电机驱动算法如何重塑未来生活》的演讲,深入浅出地阐述了我司目前在无刷马达自适应算法、FOC控制算法等技术上的优势,以及在智能家居领域上的发展战略。
    的头像 发表于 03-30 11:11 828次阅读
    2025 中国华东智能家居创新技术研讨会现场直击,高精度算法如何改变生活?--其利天下

    《零基础开发AI Agent——手把手教你用扣子做智能体》

    《零基础开发AI Agent——手把手教你用扣子做智能体》是一本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了Agent的概念和发展,还通过详细的工具介绍和实战案例,帮助读者快速掌握
    发表于 03-18 12:03

    Python中的迭代器与生成

    Python迭代器与生成器 列表生成式 列表生成式也叫做列表推导式,它本身还是列表,只不过它是根据我们定义的规则来生成一个真实的列表。  
    的头像 发表于 02-20 10:43 676次阅读

    深居AutoCAD二次开发

    深居AutoCAD二次开发,net版
    发表于 01-06 14:12 12次下载