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)
posted @   冀未然  阅读(34)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示