欢迎访问宙启技术站
智能推送

如何使用Python生成中文验证码

发布时间:2023-12-31 21:26:44

生成中文验证码可以使用Python的Pillow库和随机数生成器。以下是一个使用示例,生成1000个长度为4的中文验证码:

首先,安装Pillow库:

pip install Pillow

导入所需的库和模块:

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

定义生成中文验证码的函数:

def generate_captcha(size=4):
    # 随机选择中文字符
    characters = ''.join(random.choices(string.ascii_uppercase + string.ascii_lowercase + string.digits + '中华人民共和国', k=size))

    # 创建一个白色背景图片
    width, height = 200, 100
    image = Image.new('RGB', (width, height), color='white')
    font = ImageFont.truetype('msyh.ttc', size=80)

    # 在图片上写入字符
    draw = ImageDraw.Draw(image)
    draw.text((50, 10), characters, font=font, fill='black')

    # 添加干扰线条
    for _ in range(10):
        x1 = random.randint(0, width)
        y1 = random.randint(0, height)
        x2 = random.randint(0, width)
        y2 = random.randint(0, height)
        draw.line([(x1, y1), (x2, y2)], fill='black', width=2)

    # 添加噪点
    for _ in range(100):
        x = random.randint(0, width)
        y = random.randint(0, height)
        draw.point((x, y), fill='black')

    # 保存图片并返回字符
    image.save(f'captcha_{characters}.png')
    return characters

使用函数生成1000个中文验证码,并打印出来:

if __name__ == '__main__':
    for _ in range(1000):
        captcha = generate_captcha()
        print(captcha)

此代码将生成1000个长度为4的中文验证码,并将每个验证码保存为名为captcha_{验证码}.png的图片文件。你可以根据需要修改字符的大小、图片的大小以及保存文件的路径和名称。

请注意,为了生成中文字符,需要提供包含中文字体的.ttc文件。在上述示例中,我使用的是微软雅黑字体(msyh.ttc)。你可以根据需要更改字体文件的路径和名称,以确保能够正确显示中文字符。