在Python中,我们可以使用第三方库如PIL(Python Imaging Library)和random来生成图形验证码。以下是一个简单的示例代码。

确保已经安装了PIL库,如果没有安装,可以使用pip进行安装:
pip install pillow
你可以使用以下代码来生成一个简单的图形验证码:
import random
from PIL import Image, ImageDraw, ImageFont
设置验证码字符集和随机颜色生成函数
characters = ’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
colors = [(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) for _ in range(5)]
font = ImageFont.truetype(’arial.ttf’, 36) # 使用你的字体文件路径替换 ’arial.ttf’
def generate_captcha(text):
width, height = 200, 80 # 设置验证码图片的大小
image = Image.new(’RGB’, (width, height), color=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) # 创建空白图片
draw = ImageDraw.Draw(image) # 创建绘图对象
draw.text((width/len(text)*i for i in range(len(text))), text=text, font=font, fill=(random.choice(colors))) # 在图片上绘制文本字符
for i in range(random.randint(1, 4)): # 添加随机干扰线条以增加难度
draw.line([(random.randint(0, width), random.randint(0, height)), (random.randint(0, width), random.randint(0, height))], fill=(random.choice(colors)), width=random.randint(1, 3)) # 随机画线干扰字符识别
return image # 返回生成的图片对象,可以保存为文件或者显示在界面上
生成验证码并保存为文件
captcha_text = ’’.join(random.sample(characters, random.randint(4, 6))) # 生成随机验证码文本字符串,长度随机在4到6之间
image = generate_captcha(captcha_text) # 生成验证码图片对象
image.save(’captcha_’ + captcha_text + ’.png’) # 保存图片文件到本地目录,文件名包含生成的验证码文本字符串和扩展名 ’.png’,注意替换为你的实际路径。这段代码会生成一个包含随机字符的验证码图片,并保存为PNG格式的文件,你可以根据需要调整字符集、颜色、线条数量等参数来增加或减少验证码的复杂度,你也可以将生成的图片显示在界面上,而不是保存为文件,这取决于你的应用场景和需求。




