Member-only story
How to generate CAPTCHA in Python?
This is very simple “hello world” type program to generate CAPTCHA.
import random
import string
from PIL import Image, ImageDraw, ImageFont
def generate_captcha(length=6):
# Generate random characters
chars = ‘’.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(length))
# Create image
img = Image.new(‘RGB’, (200, 100), color=(73, 109, 137))
d = ImageDraw.Draw(img)
# Set font
font = ImageFont.truetype(‘arial.ttf’, 30)
# Draw characters
x = 20
for char in chars:
d.text((x, 30), char, font=font, fill=(255, 255, 0))
x += 30
# Add noise
for _ in range(100):
x = random.randint(0, 200)
y = random.randint(0, 100)
d.point((x, y), fill=(0, 0, 0))
# Save image
img.save(‘captcha.png’)
return chars
# Generate CAPTCHA