如何用Python做个微信朋友圈抽奖九宫格

发布时间:2021-10-11 17:14:55 作者:柒染
来源:亿速云 阅读:115

今天就跟大家聊聊有关如何用Python做个微信朋友圈抽奖九宫格,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

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

如何用Python做个微信朋友圈抽奖九宫格

随便点开一个:

如何用Python做个微信朋友圈抽奖九宫格

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

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

设计思路

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

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

准备素材

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

如何用Python做个微信朋友圈抽奖九宫格

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

如何用Python做个微信朋友圈抽奖九宫格

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

content={    "back_img":"paper.jpg",    "001":{        "ad":'老板,买10盒月饼呗',        "head":'001.jpg'    },    "002": {        "ad": '老板,买20盒月饼呗',        "head": '002.jpg'    },    "003": {        "ad": '老板,生活不易,买50盒月饼呗',        "head": '003.jpg'    },    "004": {        "ad": '老板,买个80盒月饼,不多',        "head": '004.jpg'    },    "005": {        "ad": '老板,看面相,你应该买100盒月饼',        "head": '005.jpg'    },    "006": {        "ad": '老板,恭喜你中奖了,奖品是150盒月饼',        "head": '006.jpg'    },    "007": {        "ad": '老板,你的员工让我告诉你,他们想吃月饼了',        "head": '007.jpg'    },    "008": {        "ad": '老板,我卖月饼,买200盒呗',        "head": '008.jpg'    },    "009": {        "ad": '老板,不整500盒月饼送礼啊',        "head": '009.jpg'    }}

PIL 图片处理

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

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

from PIL import Image# im 是背景图im = Image.open(background)# head_img 是要贴的表情图,先缩放统一尺寸head_img = Image.open(f"head/{head}").resize((150,150),Image.ANTIALIAS)# 在背景图的 75,200 坐标处贴s上表情图im.paste(head_img,(75,20))

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

from PIL import Image, ImageFont, ImageDrawim = Image.open(background)
draw = ImageDraw.Draw(im)mark_font = ImageFont.truetype("pre/arial.ttf",100)draw.text((125,400),mark,font=mark_font,fill=(0,0,0))

细节处理

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

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

    # 提前定义好生成长图的函数 get_pic(background,head,adcontent,mark,pic_name)     for i in range(1,10):        background = "pre/paper.jpg"        head = content[f'00{i}']['head']        adcontent = content[f'00{i}']['ad']        get_pic(background,head,adcontent,f"{i}",f"{i}.jpg")    print("九宫格图片生成完毕!")

代码下载

GitHub 代码及素材下载链接:https://github.com/pengfexue2/friends_ad.git
百度网盘代码及素材下载:https://pan.baidu.com/s/10qqahokqPoc1KFJ7PyARxg  密码:h202

最终效果

如何用Python做个微信朋友圈抽奖九宫格

点开之后是如下长图:

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格

如何用Python做个微信朋友圈抽奖九宫格


看完上述内容,你们对如何用Python做个微信朋友圈抽奖九宫格有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 如何用redis制作抽奖功能?
  2. 基于VUE实现的九宫格抽奖功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:python爬虫中如何实现网页文本的格式化

下一篇:python高级开发中如何进行可视化界面开发环境搭建

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》