• django生成验证码


    django生成验证码


     1 # 制作验证码
     2 def verify_code():
     3     # 1,定义变量,用于画面的背景色、宽、高
     4     # random.randrange(20, 100)意思是在20到100之间随机找一个数
     5     bgcolor = (random.randrange(20, 100), random.randrange(20, 100), 159)
     6     width = 100
     7     height = 30
     8     # 2,创建画面对象
     9     im = Image.new('RGB', (width, height), bgcolor)
    10     # 3,创建画笔对象
    11     draw = ImageDraw.Draw(im)
    12     # 4,调用画笔的point()函数绘制噪点,防止攻击
    13     for i in range(0, 100):
    14         # 噪点绘制的范围
    15         xy = (random.randrange(0, width), random.randrange(0, height))
    16         # 噪点的随机颜色
    17         fill = (random.randrange(0, 255), 255, random.randrange(0, 255))
    18         # 绘制出噪点
    19         draw.point(xy, fill=fill)
    20     # 5,定义验证码的备选值
    21     str1 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    22     # 6,随机选取4个值作为验证码
    23     rand_str = ''
    24     for i in range(0, 4):
    25         rand_str += str1[random.randrange(0, len(str1))]
    26 
    27     # 7,构造字体对象
    28     fontPath = os.path.join(settings.STATICFILES_DIRS[0], 'font/System San Francisco Text Medium.ttf')
    29 
    30     font = ImageFont.truetype(fontPath, 23)
    31     # 8,构造字体颜色
    32     fontcolor = (255, random.randrange(0, 255), random.randrange(0, 255))
    33     # 9,绘制4个字
    34     draw.text((5, 2), rand_str[0], font=font, fill=fontcolor)
    35     draw.text((25, 2), rand_str[1], font=font, fill=fontcolor)
    36     draw.text((50, 2), rand_str[2], font=font, fill=fontcolor)
    37     draw.text((75, 2), rand_str[3], font=font, fill=fontcolor)
    38     # 9,用完画笔,释放画笔
    39     del draw
    40     # 10,内存文件操作
    41     buf = BytesIO()
    42     # 11,将图片保存在内存中,文件类型为png
    43     im.save(buf, 'png')
    44     # 12,返回图片的二进制信息和图片的随机数字
    45     return buf.getvalue(), rand_str

    将fontpath改成自己的就好了,需要的时候直接调用

  • 相关阅读:
    memcached 在windows下安装及启动
    细说 ASP.NET Cache 及其高级用法
    asp.net MVC helper 和自定义函数@functions小结
    log4net 总结
    紧跟时代步伐,让我们拥抱MVC 3
    关于node-sass安装失败的解决办法
    table自适应
    获取select选中的值
    省市三级联动
    git bush 代码提交
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11016779.html
Copyright © 2020-2023  润新知