Python 生成验证码图片 - 完整代码示例
下面是完整的验证码生成代码,包括生成随机字符串和将字符串画成图片的两个方法:
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()方法用于将字符串画成验证码图片。这两个方法都需要传入参数,分别是字符串长度和保存图片的文件名。
原文地址: https://www.cveoy.top/t/topic/mVvs 著作权归作者所有。请勿转载和采集!