Python 驗證碼圖是 Web 應用程序中常用的一種驗證方式,它可以防止惡意程序通過自動化方式進行大規模的攻擊和注冊操作。Python 驗證碼圖是通過將隨機生成的驗證碼字符渲染成圖片形式,然后在用戶提交表單時進行驗證。
Python 驗證碼圖生成的主要模塊是PIL
(Python Imaging Library),使用這個模塊可以方便地生成驗證碼圖。以下是一個簡單的 Python 代碼,用于生成一個基本的驗證碼圖:
from PIL import Image, ImageDraw, ImageFont
import random
#生成一個隨機的字母序列
def generate_chars(length=4):
characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
return ''.join(random.choice(characters) for _ in range(length))
#生成驗證碼圖像
def generate_image(chars):
width, height = 200, 100
image = Image.new('RGB', (width, height), (255, 255, 255))
font = ImageFont.truetype('arial.ttf', 40)
d = ImageDraw.Draw(image)
d.text((20, 20), chars, font=font, fill=(0, 0, 0))
c = [(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) for _ in range(4)]
for i in range(4):
d.line([(i*50, 0), (i*50+50, 100)], width=4, fill=c[i])
return image
#生成并保存驗證碼圖像
if __name__ == '__main__':
chars = generate_chars()
image = generate_image(chars)
image.save('captcha.png')
在上述代碼中,首先定義了一個generate_chars
方法,用于生成隨機的驗證碼字母序列,然后定義了一個generate_image
方法,用于生成驗證碼圖片。該方法使用PIL
的Image.new()
方法創建一個新的RGB
格式的圖片,然后使用ImageFont.truetype()
方法導入字體文件,并使用字體渲染驗證碼字符。最后,該方法通過隨機顏色將驗證碼圖片中的字符和干擾線條進行區分,并返回生成的驗證碼圖片。
最后,在代碼中使用generate_chars
和generate_image
方法生成并保存驗證碼圖像。通過這個簡單的實例,您可以學習到如何使用 Python 生成驗證碼圖像,從而更好地保護您的 Web 應用程序。
上一篇python 高光譜聚類
下一篇python 異步非阻塞