用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 库中的 Image、ImageDraw 和 ImageFont 类来创建图片、绘制验证码和设定字体样式。
在使用示例中,通过调用 generate_code 生成 4 位长度的验证码,并将其作为参数传递给 generate_image 函数,然后调用 image.show() 显示生成的验证码图片。
需要注意的是,要在代码所在的目录下准备一种字体,这里使用了 Arial.ttf 作为字体文件。你也可以修改代码中的字体文件路径和其他参数,以满足自己的需求。
此时运行代码,将会生成一个包含随机验证码的图片,并显示出来。每次运行代码,都会生成不同的验证码和图片。
希望对你有所帮助!
