下面是完整的验证码生成代码,包括生成随机字符串和将字符串画成图片的两个方法:

import random
import string
from PIL import Image, ImageDraw, ImageFont

# 生成指定长度的随机字符串
def generate_random_string(length):
    # 可选的字符集合,包括大写字母、小写字母和数字
    characters = string.ascii_letters + string.digits  
    # 从字符集合中随机选择指定个数的字符,拼接成字符串
    random_string = ''.join(random.choices(characters, k=length))  
    return random_string

# 将字符串画成验证码图片
def generate_verification_code(string, filename):
    # 图片大小
    width, height = 200, 100
    # 创建Image对象
    im = Image.new('RGB', (width, height), (255, 255, 255))
    # 创建Draw对象
    draw = ImageDraw.Draw(im)
    # 设置字体(这里使用PIL自带的字体)
    font = ImageFont.truetype('arial.ttf', 50)
    # 获取字符串的宽度和高度
    text_width, text_height = draw.textsize(string, font)
    # 计算字符串的起始坐标
    x = (width - text_width) // 2
    y = (height - text_height) // 2
    # 将字符串画到图片上
    draw.text((x, y), string, font=font, fill=(0, 0, 0))
    # 保存图片
    im.save(filename)

# 生成指定长度的随机字符串并画成验证码图片
random_string = generate_random_string(6)
generate_verification_code(random_string, 'verification_code.png')

其中generate_random_string()方法用于生成指定长度的随机字符串,generate_verification_code()方法用于将字符串画成验证码图片。这两个方法都需要传入参数,分别是字符串长度和保存图片的文件名。

Python 生成验证码图片 - 完整代码示例

原文地址: https://www.cveoy.top/t/topic/mVvs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录