python文字点选验证码生成代码
时间: 2023-07-23 07:22:42 浏览: 135
以下是一个使用 Python 生成文字点选验证码的示例代码:
```python
from PIL import Image, ImageDraw, ImageFont
import random
# 生成随机字符串
def generate_code(length):
"""
生成指定长度的随机字符串,由大小写字母和数字组成
"""
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
code = ''
for i in range(length):
index = random.randint(0, len(all_chars) - 1)
code += all_chars[index]
return code
# 生成验证码图片
def generate_captcha(code, width, height, font_size):
"""
生成指定宽高和字体大小的验证码图片,文字为随机生成的字符串code
"""
im = Image.new('RGB', (width, height), (255, 255, 255))
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('arial.ttf', font_size)
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 i in range(100):
x = random.randint(0, width - 1)
y = random.randint(0, height - 1)
draw.point((x, y), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
return im
# 生成验证码图片和对应的答案
def generate_captcha_and_code(length, width, height, font_size):
"""
生成指定长度、宽高和字体大小的验证码图片和对应的答案
"""
code = generate_code(length)
im = generate_captcha(code, width, height, font_size)
return im, code
```
以上代码使用了Pillow库来生成图片和绘制文字,生成的验证码图片包含随机生成的字符串和一些随机点,以增加难度。可以根据需要调整难度和样式。
阅读全文