python 网站动态图片验证码
时间: 2023-08-06 08:00:18 浏览: 132
Python 可以通过多种方式实现网站动态图片验证码。
一种常用的方式是使用 Pillow 库生成图片,并使用随机字符和干扰线等来增加验证码的可读性和安全性。以下是一个简单的示例:
```python
from PIL import Image, ImageDraw, ImageFont
import random
def generate_captcha(size=(200, 100), chars=6, fontsize=50):
# 创建一个空白图片
image = Image.new('RGB', size, (255, 255, 255))
draw = ImageDraw.Draw(image)
# 加载字体文件
font = ImageFont.truetype('arial.ttf', fontsize)
# 随机生成验证码字符
captcha = ''
for _ in range(chars):
captcha += random.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
# 在图片上绘制验证码
draw.text((10, 30), captcha, font=font, fill=(0, 0, 0))
# 添加干扰线
for _ in range(random.randint(5, 10)):
x1 = random.randint(0, size[0])
y1 = random.randint(0, size[1])
x2 = random.randint(0, size[0])
y2 = random.randint(0, size[1])
draw.line((x1, y1, x2, y2), fill=(0, 0, 0))
# 保存图片
image.save('captcha.jpg')
return captcha
# 生成并显示验证码
captcha = generate_captcha()
image = Image.open('captcha.jpg')
image.show()
```
这段代码使用 Pillow 库创建一个指定大小的空白图片,然后随机生成指定长度的验证码字符,再将验证码字符绘制在图片上,并添加干扰线。最后将生成的图片保存到本地,并返回验证码字符串。
阅读全文