本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于碧茂大数据 ,作者碧茂大数据

于是对于图像处理,复杂的部分依然在PS或者AI中人工完成,简单的处理就可以用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()

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

 

这张图片下方还有一截留白,那是给我们最后一步添加文字用的。come on,魔性的笑容已经呈现,接下来就是最后一击,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")

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

 

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

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

 

问题升华

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

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

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

 

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

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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/hhh188764/p/13821078.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!