zoukankan      html  css  js  c++  java
  • captcha_生成图片验证码并返回给前端展示

     使用pip install captcha 安装模块

    import random
    import string
    import os
    import io
    
    from captcha.image import ImageCaptcha, random_color
    
    
    def generate_captcha():
        # # 返回大写字母
        # uppercase = string.ascii_uppercase
        # # 返回小写字母
        # lowercase = string.ascii_lowercase
        # 返回大小写字母
        letters = string.ascii_letters
        # 返回数字
        digits = string.digits
        
        # 随机选取 4 个字符
        random_str = ''.join([random.choice(digits+letters) for j in range(4)])
        
        width, height = 170, 80
        
        # 创建图片生成器
        generator = ImageCaptcha(width=width, height=height)
        
        # 创建验证码图片
        img = generator.create_captcha_image(chars=random_str, color=random_color(1, 255), background=random_color(1, 255))
        
        # 为图片增加干扰点
        generator.create_noise_dots(img, random_color(1, 255))
        # 为图片增加干扰线
        generator.create_noise_curve(img, random_color(1, 255))
        
        # 展示图片(展示图片的操作与上面保不保存无关)
        img.show()
        
        # 保存生成的图片到本地
        fileName = "saveImg"
        if not os.path.exists(fileName):
            os.mkdir(fileName)
        img.save("%s/%s.png" % (fileName, random_str))
        
        # 将图片保存到缓存中
        buffer = io.BytesIO()
        img.save(buffer, 'PNG')
        # 读取图片的byte值
        image_data = buffer.getvalue()
        buffer.close()
    
        return random_str, image_data

    生成的验证码样式如下

     

    前端展示效果

  • 相关阅读:
    windows server2012 r2 上IIS8.5
    windows server2012 r2 上 安装 IIS8.5
    Visual Studio 14 初试,vNext
    ASP.NET MVC+EF5 开发常用代码
    JavaScript中的Array
    java maven安装以及如何安装第三方的jar以及module的配置
    java字符串格式化错误
    Excel数据生成Sql语句
    tornado异步请求非阻塞
    python tornado User-Agent
  • 原文地址:https://www.cnblogs.com/testlearn/p/14269581.html
Copyright © 2011-2022 走看看