首页 > 编程语言 >Python生成验证码

Python生成验证码

时间:2025-01-01 11:52:12浏览次数:1  
标签:randint Python random 验证码 height width 生成

1.Python3.x中安装Pillow模块
pip install pillow

 

2.Python生成验证码(Python生成数字英文验证码, Python生成验证码,文章摘自: https://www.cnblogs.com)

'''
PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大。不过只支持到Python 2.7
在Python2中,PIL(Python Imaging Library)是一个非常好用的图像处理库,但PIL不支持Python3,所以有人(Alex Clark和Contributors)提供了Pillow,可以在Python3中使用。
Python3.x中安装Pillow模块:
    pip install pillow
'''

from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random
import string


#生成4位验证码
def geneText():
    return ''.join(random.sample(string.ascii_letters + string.digits, 4)) #ascii_letters是生成所有字母 digits是生成所有数字0-9


#随机颜色
def rndColor():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))


def drawLines(draw, num, width, height):
    '''划线'''
    for num in range(num):
        x1 = random.randint(0, width / 2)
        y1 = random.randint(0, height / 2)
        x2 = random.randint(0, width)
        y2 = random.randint(height / 2, height)
        draw.line(((x1, y1), (x2, y2)), fill='black', width=1)


#生成验证码图形
def getVerifyCode():
    code = geneText()
    # 图片大小120×50
    width, height = 120, 50
    # 新图片对象
    im = Image.new('RGB', (width, height), 'white')
    # 字体库文件
    font = ImageFont.truetype('arial.ttf', 40)
    # draw对象
    draw = ImageDraw.Draw(im)
    # 绘制字符串
    for item in range(4):
        draw.text((5 + random.randint(-3, 3) + 23 * item, 5 + random.randint(-3, 3)),text=code[item], fill=rndColor(), font=font)
    # 划线
    drawLines(draw, 2, width, height)
    im.save('code.jpg', 'jpeg')# 将生成的图片保存为code.jpg
    im.show()# 显示图片,第一次可能会提示选择默认图片查看器。
    print(im,code)
    return im, code


if __name__ == '__main__':
    getVerifyCode()

 

标签:randint,Python,random,验证码,height,width,生成
From: https://www.cnblogs.com/codtina/p/18645438

相关文章

  • SQL进阶技巧:如何生成一个员工及其有效门禁卡的列表?
    目录0需求描述1数据准备2问题分析方法1:使用窗口函数row_number()方法2:采用casewhen 3小结往期精彩0需求描述目标:生成一个员工及其有效门禁卡的列表。规则员工可能有多个门禁卡。每个员工在同一时间只能有一个有效的门禁卡。默认最新的门禁卡是有效的(因为......
  • python毕设 物业管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景在当今社会,随着城市化进程的加速,物业管理的规模和复杂度不断增加。关于物业管理系统的研究,现有研究主要以传统管理模式向数字化转型为......
  • 《100天学习Python:从入门到精通》——第4天:Python变量的定义及使用
    大家好啊,今天我就来和大家分享一下关于变量的定义及使用吧。1.Python变量的定义及初始化Python变量名要求:1.变量名只能由字母、下划线、数字组成,不能是别的符号。2.变量名开头只能是字母和下划线,不能是数字。3.尽量不要与Python标准库里的函数或第三方模块中的函数重名。......
  • python下载,安装,环境配置
    下载地址:PythonWindows版本下载|Python中文网官网选择路径安装完成检测安装是否成功使用win+r启动运行对话框,输入cmd进入命令行。输入piplist输入wherepython查看python.exe的路径环境配置win+r打开运行对话框,输入sysdm.cp1,回车后进入系统......
  • 2025 第一弹:3 分钟带你使用 Cursor 生成新年祝福
    2025第一弹:3分钟带你使用Cursor生成新年祝福项目效果项目简介Cursor是一个由OpenAI开发的AI写作助手,它可以帮助你快速生成文本、代码、图像等。这一次我们使用Cursor来生成一个新年祝福的动画,并使用Vue3和Vite4来实现。要求是不能编写任何代码,只使用C......
  • python毕设 外卖箱管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于外卖箱管理系统的研究,现有研究主要以外卖配送流程或外卖员管理为主,专门针对外卖箱管理的研究较少。在国内外,外卖行业发展迅速,外卖......
  • python毕设 师生科研信息管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景在当今的教育与科研领域,师生科研信息管理变得愈发重要。关于科研信息管理系统的研究,现有研究主要集中在通用的信息管理系统上,专门针对......
  • 【开题报告+文档+源码】基于Python心理健康管理系统
    项目背景与意义在21世纪的快速发展下,社会变革日益加剧,人们的生活节奏逐渐加快,竞争也日益激烈。与此同时,人与人之间的关系变得错综复杂,社会已进入了信息时代。由于科学技术日新月异,知识更新加快,迫使人们需要不断学习才不至于被飞速发展的社会淘汰。在这样的社会现实下,人们的观......
  • Python 基础知识点!assert 断言及其应用场景最全汇总
    在编程中,断言(Assertion)是一种检查条件是否为真的语句,如果条件不为真,则会引发异常。断言通常用于验证程序中的假设,确保代码在预期的条件下运行。在Python中,断言使用assert关键字,其语法如下:assertcondition,[error_message]condition是一个表达式,如果该表达式为False,......
  • Trees in python
    TheTreeclassisdefinedasbelow.classTree:""">>>t=Tree(3,[Tree(2,[Tree(5)]),Tree(4)])>>>t.label3>>>t.branches[0].label2>>>t.branches[1].is_leaf()True......