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

python:实现抽奖(附完整源码) 阅读详情

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

640?wx_fmt=jpeg

随便点开一个:

640?wx_fmt=jpeg

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

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

设计思路

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

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

准备素材

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

640?wx_fmt=jpeg

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

640?wx_fmt=jpeg

九句不同的广告语参考文章开头朋友圈图片,我们通过 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, 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))

细节处理

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

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

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

最终效果

640?wx_fmt=jpeg

点开之后是如下长图:

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

近期热门:

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

学习群:

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

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

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

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

Python-简单的实现啦九宫格抽奖的原理 简单的实现啦九宫格抽奖的原理 立即下载

相关推荐

九宫格抽奖源代码

抽奖类,转盘 源代码,...............................................................................................................................................

朋友圈抽奖九宫格

朋友圈抽奖九宫格设计思路准备素材PIL 图片处理细节处理代码下载最终效果后续更新 最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。 制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 ...

TEDxPY 661

基于VUE实现的九宫格抽奖功能

先给大家展示下效果图: HTML代码: <title-bar :title=title></title-bar> 我的积分: 1000

python口号_编程语言的口号

软件工程是经验可以变化的领域。有一些津津乐道的编程,而另一些则感到沮丧。毫无疑问,构建软件可以使任何人感到压力。为了避免这种情况,这里列出一些描绘流行编程语言的诚实的口号-这里并不想冒犯任何人。幽默有助于建立人际关系,我希望其中一些会使您发笑。Java我们越来越老,并总是很冗长。但是,如果付钱给我们,我们会长期为您提供支持。C我可能是最老的,但您仍然需要给我分配空间,指向别人是我最喜欢的爱好。C+...

weixin_39719472的博客 955

python实现抽奖小程序

本文实例为大家分享了python实现抽奖小程序的具体代码,供大家参考,具体内容如下 设计一个抽奖服务  背景:有x个奖品,要求在y天内发完;每天至少发放z个奖品;每天抽奖人数不定,事先会假设一个范围是m-n 举例:有100个奖品,要求5天内发完,每天至少发15个奖品;每天来抽奖的人估计是 2000-3000 人,希望奖品能够比较均匀,但随机的抽取出来。 接口要求:服务监听一个端口,测试程序不断连接,发送一个数字代表是第几天,比如第1-2000个请求发送1(模拟第一天来了2000人),第2001到5000请求发送2(模拟第二天来了3000人)… 服务返回 0 or 1 表示是否抽到奖品 c

抽奖小程序

用python、tornado实现一个抽奖小程序,用的是vscode编程环境,可以设置1等奖、2等奖、3等奖,并且先从3等奖开始抽起,最后1等奖。代码不是很完美,但是可以参考参考。

Python的几句经典口号

Python的格言大家应该都知道,汇总一下: Life is short, use Python. ——人生苦短,我用Python Life’s pathetic, let’s pythonic. ——人生苦短,python是岸 上面这两句都来自龟叔的T恤。 第一句经过 Java 大师(Bruce Eckel)和 Python 之父(龟叔Guido)的宣传,这句话不火都难,感觉“use”改...

feelyounger的专栏 9406

QT使用高精度定时器

精度相对第二种方法高许多。

ljjjjjjjjjjj的博客 4097

基于tkinter的随机抽奖程序(每天一个python小项目)

import csv import tkinter as tk import tkinter.messagebox import datetime import pandas as pd import os import random dt = datetime.datetime.now() time = dt.strftime("%Y-%m-%d %H:%M:%S") #保存参与抽奖的数据 def save(): #判断文件是否存在 flag = os.path.isfile('G:/code/0

m0_46388544的博客 1018

【STM32】STM32 CANFD外设的几种消息接收过滤模式

在控制器区域网络(CAN)系统中,正确配置消息过滤器对于有效管理网络通信至关重要。特别是在使用Flexible Data-rate Controller Area Network(FDCAN)时,选择合适的过滤器类型可以大大提高网络效率和消息处理速度。

林愿留的博客 6226

准静态电磁场

叠加法 缺点:对于连续分布的电荷,叠加法的计算比较困难 虚位移法 概念 广义坐标:确实系统中导体形状、尺寸与位置的一组独立几何量。 广义力:企图改变某一广义坐标的力。 功:广义力乘上由它引起的广义坐标的改变量。 公式 ...

qq_35912930的博客 1860

python社团宣传语_用Python做一个好玩的朋友圈九宫格抽奖

最近在朋友圈看到个好玩的抽奖九宫格:随便点开一个:设计思路以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽“哈哈哈”。Python 图像处理实现此思路,就是在对应尺寸的底图上,找到元素对应的位置坐标,通过 PIL 模块贴上预备好的表情图,并在图片中添加对应的广告语文本。图中心的数字编号我选择通过添加文本来实现,至于最...

weixin_39752828的博客 535

AIGC游戏测试自动化:AI如何提升游戏QA效率

随着游戏产业的蓬勃发展,游戏的复杂度和规模不断增加,传统的游戏测试方式面临着巨大的挑战。本文章的目的在于深入探讨AIGC技术在游戏测试自动化中的应用,分析AI如何提升游戏QA的效率。范围涵盖了从核心概念到实际应用的各个方面,包括算法原理、数学模型、项目实战案例以及未来发展趋势等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确AIGC和游戏测试自动化的相关概念和关系;接着讲解核心算法原理和具体操作步骤,通过Python代码进行详细说明;然后介绍数学模型和公式,并举例说明;

AI 原生应用开发的博客 1354

python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖

最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽“哈哈哈”。Python 图像处理实现此思路,就是在对应尺寸的底图上,找到元素对应的位置坐标,通过 PIL 模块贴上预备好的表情图,并在图片中添加对应的广告语文本。图中心的数字编号我选择通过添加文本来实现,...

weixin_42307436的博客 255

C#上位机实战:Modbus RTU串口通信(CRC校验+超时重发完整实现)

在工业自动化上位机开发中,Modbus RTU是串口通信的事实标准协议,SerialPort是 .NET 平台操作串口的原生类,无需依赖第三方库即可实现基础通信。实际项目中,工控现场存在电磁干扰、串口丢包、设备响应延迟等问题,CRC 数据校验用于保证报文完整性,超时重发机制用于提升通信稳定性。本文从零封装一套可直接落地的 Modbus RTU 通信组件,包含完整的校验算法、超时控制、重发逻辑,并配套 WinForm 演示界面。本文基于 C# 原生SerialPort类,实现了一套生产可用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 388

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit we1 = P3^0; sbit we2 = P3^1; sbit we3 = P3^2; sbit we4 = P3^3; sbit DS = P1^0; sbit D1 = P3^6; sbit D2 = P3^7; uch

perseverance51博客 1540

打开时缩放 python_用Python做一个好玩的朋友圈九宫格抽奖

最近在朋友圈看到个好玩的抽奖九宫格:随便点开一个:哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?设计思路以朋友圈中看到的1号图做参考,...

weixin_39577422的博客 116

第14.10章 高翔博士最新开源框架Lightning-LM源码解读(十):在线定位run_loc_online涉及到的核心模块总结

本文对Lightning-LM激光SLAM定位框架进行了全面剖析。该框架是一个轻量高效的激光雷达建图与定位系统,支持3D SLAM、动态图层管理等功能。文章首先介绍了项目概况和源码结构,包括核心模块如定位系统(loc_system)、激光匹配(lidar_loc)和位姿图优化(pose_graph)等。接着详细解析了各模块的关键函数和运行流程,如数据接收处理、NDT匹配和位姿优化等。最后总结了学习该框架所需的C++知识要点,包括智能指针、多线程编程等现代C++特性。该分析为SLAM开发者提供了实用的架构参考

行知SLAM 801

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

最近在朋友圈看到个好玩的抽奖九宫格:随便点开一个效果是这样的:哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作...

苏克的博客 237

黑猫带你学eMMC协议第9篇:eMMC初始化过程(initial)

本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 文章所在专栏:《黑猫带你学:eMMC协议详解》 1 什么是emmc的初始化 对于小白来说,可能不太明白什么是emmc初始化。举个栗子:当你拿到一个电脑,接上电源,是不是就立马可以用了呢?并不是吧,你还需要去开机,等待电脑启动,配置完各种参数,等出现了电脑桌面,你才能用。那么同样,对于emmc芯片来说,也不是提供电源就能用了,需要输入各种命令后,让其进入到tran state后,才能正.

黑猫奥利奥的博客 6741

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

抽奖Python代码_10分钟用Python做个微信朋友圈抽奖九宫格

最近在朋友圈看到个好玩的抽奖九宫格:随便点开一个:哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?设计思路以朋友圈中看到的1号图做参考,...

weixin_39551996的博客 290

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python微信朋友圈刷图_10分钟用Python做个微信朋友圈抽奖九宫格

最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?设计思路以朋友圈中看到的1号图做参考,我们需...

weixin_42116734的博客 339

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vue 实现九宫格抽奖_朋友圈抽奖九宫格

最近在微信朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?设计思路以朋友圈中看到的1号图做参...

weixin_35133280的博客 167

html九宫格抽奖代码_朋友圈抽奖九宫格

最近在微信朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路。制作图的过程也不复杂,长图对应部分设计好,最后整合到一起就 OK 了,就是一张张地重复操作略显麻烦。想到这,不禁嘴角一翘、微微一笑,用 Python 的 PIL 模块来批量生成九宫格图片,不就好了?设计思路以朋友圈中看到的1号图做参...

weixin_34792546的博客 818
上一篇: 国外的码农是什么状态?硅谷程序员:不加班,不穿女装
下一篇: 三个好习惯,帮你写好Python里的异常处理
菜鸟学Python
博客等级 码龄9年 8063粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值