python随机生成图片验证码
## 随机生成验证码 from PIL import Image, ImageDraw, ImageFont import random ## 随机颜色1(背景颜色): def rndColor(): return (random.randint(170, 250), random.randint(170, 250), random.randint(170, 250)) ## 随机颜色2(数字或字母颜色) def rndColor2(): return (random.randint(0, 127), random.randint(0, 127), random.randint(0, 127)) ## 生成随机验证码文本 def generate_random_code(code_length): code_chars = '0123456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ-_*#$%' # 0123456789abcdefghjkmnpqrstuvwxyz code = '' for _ in range(code_length): code += random.choice(code_chars) return code ## 生成验证码图片 def generate_captcha_image(width, height, code_length): ## 创建一个空白图片 image = Image.new('RGBA', (width, height), (255, 255, 255)) draw = ImageDraw.Draw(image) for x in range(width): for y in range(height): draw.point((x, y), fill=rndColor()) ## 选择字体和字体大小 font = ImageFont.truetype('arial.ttf', 20) ## 生成随机验证码文本 code = generate_random_code(code_length) ascent, descent = font.getsize(code) # 这里拿到文字内容的大小 ## 将验证码文本绘制到图片上 x = 1 # width/2-ascent/2 # 这里是文字内容的居中绘制算法 print(code) for i in range(6): draw.text((x+i*(width-2*x)/6, 0), code[i], font=font, fill=rndColor2()) return image def save_captcha_image(image, filename): image.save(filename) ## 调用生成验证码图片和保存验证码图片的函数 if __name__ == '__main__': # 调用生成验证码图片和保存验证码图片的函数 captcha_image = generate_captcha_image(80, 22, 6) save_captcha_image(captcha_image, 'captcha.png') img = Image.open(('captcha.png')) Image._show(img)
合集:
python
分类:
编程相关 / Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了