python中PIL模块生成四位数验证码,代码详解

python中PIL模块生成四位数验证码,代码详解

# 引入绘图模块
from PIL import Image,ImageDraw,ImageFont
# 引入随机函数模块
import random
# 定义变量,用于画面的背景颜色,宽和高
bgcolor = (random.randrange(20,100),random.randrange(20,100),random.randrange(20,100))
width = 100
height = 50
# 创建画面对象
im = Image.new('RGB',(width,height),bgcolor)
# 创建画笔对象
draw = ImageDraw.Draw(im)
# 调用画笔的point()函数绘制噪点
for i in range(0,100):
    xy = (random.randrange(0,width),random.randrange(0,height))
    fill = (random.randrange(0,255),255,random.randrange(0,255))
    draw.point(xy,fill=fill)
# 定义验证码的备选值
str = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
rand_str = ''
for j in range(4):
    rand_str += str[random.randrange(0,len(str))]
print(rand_str)
# 构造字体对象
font = ImageFont.truetype(r'‪C:\Windows\Fonts\BRUSHSCI.TTF',40)
# 构造字体颜色
fontcolor1 = (255,random.randrange(0,255),random.randrange(0,255))
fontcolor2 = (255,random.randrange(0,255),random.randrange(0,255))
fontcolor3 = (255,random.randrange(0,255),random.randrange(0,255))
fontcolor4 = (255,random.randrange(0,255),random.randrange(0,255))
# 绘制4个字
draw.text((5,2),rand_str[0],font=font,fill=fontcolor1)
draw.text((25,2),rand_str[1],font=font,fill=fontcolor2)
draw.text((50,2),rand_str[2],font=font,fill=fontcolor3)
draw.text((75,2),rand_str[3],font=font,fill=fontcolor4)
# 释放画笔
del draw
# 将图片保存在内存中
im.save('1.png','png')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值