from PIL import Image, ImageDraw, ImageFont
import random
import string
# 生成随机数字
def generate_random_number():
return random.randint(1, 10)
# 生成验证码文本和计算结果
def generate_captcha_text():
num1 = generate_random_number()
num2 = generate_random_number()
operator = random.choice(['+', '-'])
if operator == '+':
result = num1 + num2
else:
result = num1 - num2
text = f"{num1} {operator} {num2} = ?"
return text, str(result)
# 生成验证码图像
def generate_math_captcha_image(text, width, height, font_path, output_image_path):
image = Image.new('RGB', (width, height), color=(255, 255, 255))
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font_path, 40) # 使用指定字体和大小
draw.text((10, 10), text, fill=(0, 0, 0), font=font)
image.save(output_image_path)
# 生成验证码文本和结果
captcha_text, captcha_result = generate_captcha_text()
# 生成验证码图像
generate_math_captcha_image(captcha_text, 200, 50, "arial.ttf", "./img/"+captcha_text.replace('?','')+".png")
print("验证码文本:", captcha_text)
print("计算结果:", captcha_result)