千家信息网

怎么用Python实现随机生成图片验证码

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"怎么用Python实现随机生成图片验证码",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Python实现随机生成图片验证码"吧!导入
千家信息网最后更新 2025年01月20日怎么用Python实现随机生成图片验证码

本篇内容主要讲解"怎么用Python实现随机生成图片验证码",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Python实现随机生成图片验证码"吧!

导入模块

import randomfrom PIL import Image,ImageFont,ImageDraw

生成随机验证码

def rndtxt():    txt_list = []    # 大写字母    txt_list.extend([i for i in range(65,90)])    # 小写字母    txt_list.extend([i for i in range(97,123)])    # 数字    txt_list.extend([i for i in range(48,57)])    return chr(txt_list[random.randint(0,len(txt_list)-1)])

作为待会生成的图片背景色和字体色

def rndbgcolor():    # 背景颜色    return (random.randint(64,255),random.randint(64,255),random.randint(64,255)) def rndtxtcolor2():    # 字体颜色    return (random.randint(32,127),random.randint(32,127),random.randint(32,127))

进行生成打印验证码并以图片的形式打开,不保存图片文件,仅用于一时的验证码验证

def code():    weight = 240    hight = 60    image = Image.new('RGB',(weight,hight),(255,255,255))    font = ImageFont.truetype('msyh.ttc',36)    draw = ImageDraw.Draw(image)     # 填充背景颜色    for x in range(weight):        for y in range(hight):            draw.point((x,y),fill=rndbgcolor())     # 生成随机验证码    for T in range(4):        rndtxt_2 = rndtxt()        print(rndtxt_2)       # 打印验证码的值        draw.text((60 * T + 10,10),rndtxt_2,font=font,fill=rndtxtcolor2())    image.show()

完整代码:

#!/usr/bin/env python3import randomfrom PIL import Image,ImageFont,ImageDraw def rndtxt():    txt_list = []    # 大写字母    txt_list.extend([i for i in range(65,90)])    # 小写字母    txt_list.extend([i for i in range(97,123)])    # 数字    txt_list.extend([i for i in range(48,57)])    return chr(txt_list[random.randint(0,len(txt_list)-1)]) def rndbgcolor():    # 背景颜色    return (random.randint(64,255),random.randint(64,255),random.randint(64,255)) def rndtxtcolor2():    # 字体颜色    return (random.randint(32,127),random.randint(32,127),random.randint(32,127)) def code():    weight = 240    hight = 60    image = Image.new('RGB',(weight,hight),(255,255,255))    font = ImageFont.truetype('msyh.ttc',36)    draw = ImageDraw.Draw(image)     # 填充背景颜色    for x in range(weight):        for y in range(hight):            draw.point((x,y),fill=rndbgcolor())     # 生成随机验证码    for T in range(4):        rndtxt_2 = rndtxt()        print(rndtxt_2)       # 打印验证码的值        draw.text((60 * T + 10,10),rndtxt_2,font=font,fill=rndtxtcolor2())    image.show() code()

到此,相信大家对"怎么用Python实现随机生成图片验证码"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0