问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python如何自动生成表情包?

发布网友 发布时间:2022-04-29 06:22

我来回答

2个回答

懂视网 时间:2022-05-10 13:05

本文主要介绍了使用Python进行简单图像处理的方法以及Python自动生产表情包的实例,具有很好的参考价值,下面跟着小编一起来看下吧

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

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

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

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

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

素材准备

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

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

图片叠加

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

from PIL import Image, ImageDraw, ImageFont
img = 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到一项实用的神技:自动生产表情包。

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

    【相关推荐】

    1. 特别推荐:“php程序员工具箱”V0.1版本下载

    2. Python免费视频教程

    3. Python面向对象视频教程

    热心网友 时间:2022-05-10 10:13

    """
    注意asd4.jpg,asd5.jpg,draw.text,Python生成的表情包.jpg
    和本执行文件.py均在一个目录中。

    """
    from PIL import Image, ImageDraw, ImageFont
    img = Image.open("asd4.jpg")
    w,h=img.size
    img=img.resize((w*2,h*2))   #调整asd4尺寸

    jgz = Image.open("asd5.jpg")
    w,h=jgz.size
    jgz=jgz.resize((w*1,h*1))    #调整asd5尺寸

    img.paste(jgz,(120,80)) #调120,是左右移动asd5,调80大小是上下移动asd5
    img.show() 


    draw = ImageDraw.Draw(img)
    ttfront = ImageFont.truetype('simhei.ttf', 50)  #调整50大小是调字的大小
    draw.text((165, 160),"她是谁",fill=(0,0,0), font=ttfront)
    #text(x,y)y调字上下移动,x调字左右."她是谁"可随意改写
    img.show()                                             
    img.save("Python生成的表情包.jpg")

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 php 文件锁有什么用 如何打结扣 书包伸缩扣怎么调节 iPhone迅雷里下载好的东西怎么转到百度云? ipad迅雷云盘不能加载字幕 苹果手机上迅雷下的电影没字幕怎么办? 请问 如何用迅雷下载 百度云盘里的文件 苹果手机迅雷下载的电影怎么传到百度云 迅雷云播放在线字幕怎么下载? 在mac机上的路径?不是xp或者win7的 如何保证session的一致性session.save 施乐打印7535如何恢复出厂设置 用什么软件可以更改全国的网络节点呢。。。就是说我现在在浙江,然后我想把它带到别的省 市 如何查看自己网络所经过的节点 可以用什么命令(或者软件之类的工具)检测网络节点的位置?并且可以根据节点的ip判断整个网络的拓扑结构 网络管理员常用的网络配置工具,都有哪些? 在电脑上如何使用键盘加录一些特殊的符号 根据IP地址怎么查询详细地址? 能通过内网IP查询地址吗 微信电脑版怎么查找之前的传输文件 微信被封,会自动解封吗? 还是永久被封? 石角斗有什么药用呢?是治胃的吗? 铭字的含义是什么? 铭字的含义是什么意思? 铭是什么意思? 铭字的意思 铭字取名的寓意有什么? 租车基本保险费指的是什么? 租车基本保险费是什么 车险中基础保费是什么意思 五月五日上高速六日下免费吗? 六号零时前上高速的车,下高速免费吗? 内蒙5号24时前上高速,6日后下高速,收费吗? 高速路免费到几号? 货车在今天晚上12点之前上高速一直不下,6号下高速要收费吗? 二O二0年三月六日高速免费吗? 明天高速公路免费吗? 今天高速路收费吗 刚出生的小猫能喂羊奶粉么 刚出生小猫怎么喂羊奶 刚出生的小猫喝什么奶?