Python中生成验证码的方法有多种,以下是其中一种常用的方法:
- 使用Python的Pillow库来生成验证码图像,然后将图像保存或显示出来。首先需要安装Pillow库,可以使用pip命令安装:
pip install Pillow
。
下面是一个生成简单数字验证码的示例代码:
from PIL import Image, ImageDraw, ImageFont import random # 随机生成4位验证码 def generate_code(): code = '' for _ in range(4): # 随机生成数字 code += str(random.randint(0, 9)) return code # 生成验证码图像 def generate_image(code): # 图像大小和背景颜色 width, height = 120, 50 bg_color = (255, 255, 255) # 创建图像对象 image = Image.new('RGB', (width, height), bg_color) draw = ImageDraw.Draw(image) # 加载字体 font = ImageFont.truetype('arial.ttf', 36) # 绘制验证码文字 text_width, text_height = draw.textsize(code, font=font) x = (width - text_width) // 2 y = (height - text_height) // 2 draw.text((x, y), code, font=font, fill=(0, 0, 0)) # 绘制干扰线 for _ in range(6): x1 = random.randint(0, width) y1 = random.randint(0, height) x2 = random.randint(0, width) y2 = random.randint(0, height) draw.line((x1, y1, x2, y2), fill=(0, 0, 0), width=2) # 绘制噪点 for _ in range(100): x = random.randint(0, width - 1) y = random.randint(0, height - 1) draw.point((x, y), fill=(0, 0, 0)) return image # 生成验证码并保存图像 code = generate_code() image = generate_image(code) image.save('code.jpg')
上述代码使用了Pillow库创建了一个大小为120x50像素的白色背景图像,使用Arial字体绘制了随机生成的4位数字验证码,并添加了干扰线和噪点。最后将生成的验证码图像保存为code.jpg文件。
当然,验证码的生成方法还可以根据需求进行调整,例如可以生成字母+数字的验证码,或者增加更复杂的干扰元素等。