快捷搜索:  汽车  科技

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)​小编点了第一张图咳咳咳......所以做了这款朋友圈的升级版九宫格抽奖~那这抽到什么送什么,完全是看个人的运气了!​点击抽奖一次:

导语

上一期文章是写的九宫格切图,都说很好看~朋友圈的九宫格也大受欢迎!

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(1)

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(2)

其实吧:最近女朋友要生日了,我问她要什么吧,她就说“随便”,我这一想,顿时恼火啊,说随便,但是当男朋友的也肯定不能随便买个东西撒,不然随便买了,回来就说不重视她,思来想去,最后偷偷想了这个办法!!既不是不重视,也不是随便!

这往下看:

咳咳咳......所以做了这款朋友圈的升级版九宫格抽奖~那这抽到什么送什么,完全是看个人的运气了!

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(3)

点击抽奖一次:

小编点了第一张图

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(4)

正文

原理简介:

用 Python 的 PIL 模块来批量生成九宫格图片就ok了, 很简单。

我们需要准备9张封面图片,然后这里点开之后效果也有9张搞笑表情图打底 抽到的奖品名称。

Python 图像处理实现此思路,就是在对应尺寸的底图上,找到元素对应的位置坐标,通过 PIL 模块贴上预备好的表情图,并在图片中添加对应的话术。

(1)封面图的话就是最上面那组,图片底图素材:

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(5)

​​​​(2)九句不同惊喜语是想出来送女友的礼物,我们通过 Python 字典将表情图和话术对应到不同的九宫格图片:

content={ "back_img":"paper.jpg" "001":{ "ad":'恭喜!迪奥口红一盒' "head":'001.jpg' } "002": { "ad": '在家吃我做的饭' "head": '002.jpg' } "003": { "ad": '生活不易,一杯奶茶' "head": '003.jpg' } "004": { "ad": '999朵玫瑰,爱你' "head": '004.jpg' } "005": { "ad": '名牌包包自己挑' "head": '005.jpg' } "006": {"ad": '烛光晚餐你挑' "head": '006.jpg' } "007": { "ad": '大牌化妆品一套' "head": '007.jpg' } "008": { "ad": '带你去逛街买衣服' "head": '008.jpg' } "009": { "ad": '爱你的心意' "head": '009.jpg' } }

(3)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 ImageDraw im = 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))

(5)细节处理

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

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

​ # 提前定义好生成长图的函数 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("九宫格图片生成完毕!") ​

效果图:这是第九组的!!哈哈哈 这组只是娱乐效果撒!可不敢被女友抽到!

小程序做九宫格抽奖(女朋友的生日礼物能随便嘛)(6)

总结

安啦!文章就写到这正式结束啦!源码基地:#私信小编06#可免费获取源码!

喜欢就点点赞吧~谢谢,你们的支持与鼓励是我最大的动力!

猜您喜欢: