Python在手 从此斗图无敌手

发布于 更新于

技术文章

素材准备这里我们以网络上流传最广的金馆长表情为中心,以萌萌哒的熊猫头作为背景,底下加上文字就能构成一张表情包。然后用PS处理一下图片大小,模板大小设为250*250,表情裁剪一下白边。图片叠加第一步工作是把表情叠加到模板上,注意到我们的表情...

素材准备


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


然后用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=(,,),


font=ttfront)img.show()img.save(".Python生成的表情包.jpg")


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


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


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


问题升华


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


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


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


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


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


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


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


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

来源与网络


柠檬班www.ceshiren.com软件测试自学网

继续阅读