欢迎访问宙启技术站
智能推送

用Python编写一个简单的验证码生成器

发布时间:2023-12-04 19:12:18

下面是一个用Python编写的简单验证码生成器的示例代码:

import random
from PIL import Image, ImageDraw, ImageFont

def generate_code(length=4):
    chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    code = ''
    for _ in range(length):
        code += random.choice(chars)
    return code

def generate_image(code, font_size=40, width=200, height=100):
    image = Image.new('RGB', (width, height), color=(255, 255, 255))
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype('Arial.ttf', font_size)
    code_width, code_height = draw.textsize(code, font)
    x = (width - code_width) / 2
    y = (height - code_height) / 2
    draw.text((x, y), code, fill=(0, 0, 0), font=font)
    return image

if __name__ == "__main__":
    code = generate_code(4)
    image = generate_image(code)
    image.show()

上述代码中,generate_code 函数用于生成指定长度的随机验证码,generate_image 函数用于生成包含验证码的图片。在 generate_image 函数中,使用了 PIL 库中的 ImageImageDrawImageFont 类来创建图片、绘制验证码和设定字体样式。

在使用示例中,通过调用 generate_code 生成 4 位长度的验证码,并将其作为参数传递给 generate_image 函数,然后调用 image.show() 显示生成的验证码图片。

需要注意的是,要在代码所在的目录下准备一种字体,这里使用了 Arial.ttf 作为字体文件。你也可以修改代码中的字体文件路径和其他参数,以满足自己的需求。

此时运行代码,将会生成一个包含随机验证码的图片,并显示出来。每次运行代码,都会生成不同的验证码和图片。

希望对你有所帮助!