Python实现随机生成图片验证码详解

 更新时间:2022年01月19日 11:57:34   作者:小木_.  
这篇文章主要介绍了如何利用Python生成随机的图片验证码 并打印验证码的值,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起试试

使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单

导入模块

import random
from 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 python3
import random
from 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实现随机生成图片验证码详解的详细内容,更多关于Python图片验证码的资料请关注脚本之家其它相关文章!

相关文章

  • Python3 列表,数组,矩阵的相互转换的方法示例

    Python3 列表,数组,矩阵的相互转换的方法示例

    这篇文章主要介绍了Python3 列表,数组,矩阵的相互转换的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 用python写PDF转换器的实现

    用python写PDF转换器的实现

    这篇文章主要介绍了用python写PDF转换器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • python 双循环遍历list 变量判断代码

    python 双循环遍历list 变量判断代码

    这篇文章主要介绍了python 双循环遍历list 变量判断代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python基础--除法(/,//,%)的应用说明

    python基础--除法(/,//,%)的应用说明

    这篇文章主要介绍了python基础--除法(/,//,%)的应用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python中elasticsearch_dsl模块的使用方法

    python中elasticsearch_dsl模块的使用方法

    这篇文章主要介绍了python中elasticsearch_dsl模块的使用方法,elasticsearch-dsl是基于elasticsearch-py封装实现的,提供了更简便的操作elasticsearch的方法
    2022-09-09
  • Python自动化操作实现图例绘制

    Python自动化操作实现图例绘制

    这篇文章主要介绍了Python自动化操作实现图例绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python Pandas高级功能之数据透视表和字符串操作

    python Pandas高级功能之数据透视表和字符串操作

    Pandas是Python中用于数据处理和分析的强大库,这篇文章将深入探讨Pandas库的高级功能:数据透视表和字符串操作,需要的朋友可以参考下
    2023-07-07
  • django请求返回不同的类型图片json,xml,html的实例

    django请求返回不同的类型图片json,xml,html的实例

    今天小编就为大家分享一篇django请求返回不同的类型图片json,xml,html的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python浅复制中对象生存周期实例分析

    Python浅复制中对象生存周期实例分析

    这篇文章主要介绍了Python浅复制中对象生存周期,结合实例形式分析了Python面向对象中的浅复制操作时对象的生命周期问题,需要的朋友可以参考下
    2018-04-04
  • python探索之BaseHTTPServer-实现Web服务器介绍

    python探索之BaseHTTPServer-实现Web服务器介绍

    这篇文章主要介绍了python探索之BaseHTTPServer-实现Web服务器介绍,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10

最新评论