@chengweihuang
2019-03-07T00:52:10.000000Z
字数 948
阅读 562
未分类
import randomimport stringfrom PIL import Image, ImageFont, ImageDraw, ImageFilterdef rnd_Color(): # 随机颜色return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))def gene_text(): # 生成4位验证码return ''.join(random.sample(string.ascii_letters+string.digits, 4))def draw_lines(draw, num, width, height): # 划线for num in range(num):x1 = random.randint(0, width / 2)y1 = random.randint(0, height / 2)x2 = random.randint(0, width)y2 = random.randint(height / 2, height)draw.line(((x1, y1), (x2, y2)), fill='black', width=1)def get_verify_code():#生成验证码图形code = gene_text()# 图片大小120×50width, height = 120, 50# 新图片对象im = Image.new('RGB',(width, height),'white')# 字体font = ImageFont.truetype('app/static/mplus-1m-regular.woff2.ttf', 40)# draw对象draw = ImageDraw.Draw(im)# 绘制字符串for item in range(4):draw.text((5+random.randint(-3,3)+23*item, 5+random.randint(-3,3)),text=code[item], fill=rnd_Color(),font=font )# 划线# 高斯模糊 draw_lines(draw, 2, width, height)im = im.filter(ImageFilter.GaussianBlur(radius=1.5))return im, code