知行编程网知行编程网  2022-04-05 09:00 知行编程网 隐藏边栏 |   抢沙发  10 
文章评分 0 次,平均分 0.0

最近在朋友圈看到个好玩的抽奖九宫格:


用Python做一个好玩的朋友圈九宫格抽奖

随便点开一个:


用Python做一个好玩的朋友圈九宫格抽奖

哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。


制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?


设计思路


以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽“哈哈哈”。


Python 图像处理实现此思路,就是在对应尺寸的底图上,找到元素对应的位置坐标,通过 PIL 模块贴上预备好的表情图,并在图片中添加对应的广告语文本。图中心的数字编号我选择通过添加文本来实现,至于最下方的“哈哈哈”我是自制了一个七彩“哈哈哈”图片直接贴图


准备素材


首先在网上准备9个不同的表情包图片:


用Python做一个好玩的朋友圈九宫格抽奖

以及七彩“哈哈哈”嘲讽图:


用Python做一个好玩的朋友圈九宫格抽奖

九句不同的广告语参考文章开头朋友圈图片,我们通过 Python 字典将表情图和广告语对应到不同的九宫格图片:



PIL 图片处理


PIL: Python Imaging Library, 是功能强大 Python 图像处理库。Python 3 中通过 pip install Pillow 安装,代码文件开头通过 import PIL 来导入。此处我们要用到 PIL 中贴图和向图片中写入文字。


贴图通过 Image 模块来实现,通过 Image.open() 打开图片,需要的话可以进行 resize() 缩放等处理,最终通过 paste() 在给定的坐标处贴图



向图片中写入文字时通过 ImageDraw 模块来实现,如果要对文字尺寸和字体做调整,需要导入 ttf 字体文件,要注意的是有些字体不支持中文。最终通过 PIL.ImageDraw.ImageDraw.text() 将文本写入图中指定位置。



细节处理


制作九宫格图片过程中,由于内容简单,对应好元素位置直接操作就好。唯一不可控的是广告语长度和内容,这里我们处理得较简单,识别广告语中的中文“,”来断句,每个被断开的短句占一行居中显示在图片中。


既然我们是要用代码来批量生产图片,每个图片目前可变的是表情图和广告语,代码中我们就把完整生成一张图的过程封装成函数,这样每次给定相应参数调用该函数,即可批量生成我们需要的九宫格抽奖长图了。




最终效果


用Python做一个好玩的朋友圈九宫格抽奖


点开之后是如下长图:


用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖

用Python做一个好玩的朋友圈九宫格抽奖


近期热门:

千人Python知识星球重大福利,一年仅一次


学习群:

小密圈人气很高的两个实战项目

小密圈的趣味实战-微信主题

3个月还没入门Python,看这100名小密圈的同学3周学Python的杰作



需要源码和素材的同学,后台输入:【九宫格】



本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享