验证码生成是一个常见的需求,特别是在网站注册、登录等场景。在Python中,我们可以使用PIL(Python Imaging Library)库来生成验证码图片。以下是一个简单的验证码生成示例。
确保已经安装了PIL库,如果没有安装,可以使用pip进行安装:
pip install pillow
我们可以创建一个简单的验证码生成脚本:
from PIL import Image, ImageDraw, ImageFont
import random
import string
设置验证码字符集和字体样式
characters = string.ascii_letters + string.digits # 包括大小写字母和数字
font = ImageFont.truetype(’arial.ttf’, 36) # 使用arial字体和字号为36的字体样式
def generate_captcha(length=4):
"""生成指定长度的验证码"""
# 随机生成指定长度的验证码字符串
captcha_str = ’’.join(random.choice(characters) for i in range(length))
# 创建图片对象,设置背景颜色为白色
image = Image.new(’RGB’, (120, 60), color=(255, 255, 255))
# 创建绘图对象,用于在图片上绘制文字等图形内容
draw = ImageDraw.Draw(image)
# 在图片上绘制文本,设置字体样式和颜色等参数
draw.text((10, 10), captcha_str, font=font, fill=(0, 0, 0))
# 添加一些干扰线条以增加识别难度
for i in range(5):
draw.line([(random.randint(0, 119), random.randint(0, 59)], fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), width=2) # 随机生成线条的起点和终点坐标以及线条颜色等参数
# 保存图片到文件或返回图片对象(这里直接保存图片到文件)
image.save(’captcha.png’) # 保存图片到captcha.png文件
return captcha_str # 返回验证码字符串,用于验证用户输入的验证码是否正确
生成验证码并保存图片到文件
generate_captcha() # 生成长度为默认的验证码(长度为4)并保存图片到文件captcha.png中这个脚本会生成一个包含随机字符的验证码图片,并保存到一个名为captcha.png的文件中,你可以根据需要调整字符集、字体样式、图片大小等参数来生成不同样式的验证码,还可以添加更多的干扰元素(如噪点、线条等)来增加验证码的识别难度,在实际应用中,你可能需要将生成的验证码字符串保存到数据库或其他存储介质中,以便在用户提交表单时进行验证。





