• 图像处理标准库pillow


    pillow模块

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

    由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

    安装pillow

    pycharm安装

    命令行安装

    Python中引入

    from PIL import Image     #生成一张图片的第三方模块
    from PIL import ImageDraw #在图片上写字
    from PIL import ImageFont #生成字体对象

    PIL使用之验证码

    ps:验证码临时存入内存

    from io import BytesIO    #内存管理器(存临时验证码)
    def get_code(request):
        # 生成一张新图片
        new_img = Image.new('RGB',(171,34),color=get_random_color())
        # 把图片放到ImageDraw.Draw内(画笔)
        draw = ImageDraw.Draw(new_img)
        # 构造字体对象第一个参数是字体文件(ttf格式http://www.downcc.com/k/ttfziti/),第二个参数是字体大小
        font = ImageFont.truetype('static/font/simsun.ttf',30)
        valid_code = ''
        for i in range(5):
            num_str = str(random.randint(0,9))
            upper_str = chr(random.randint(65,90))
            low_str = chr(random.randint(97,122))
            random_str = random.choice([num_str,upper_str,low_str])
            draw.text((i*28+20,1),random_str,get_random_color(),font=font)
            valid_code+=random_str
        print(valid_code)
        # 把验证码存到session
        request.session['valid_code']=valid_code
        # 打开一个内存管理器,保存进去
        img = BytesIO()
        new_img.save(img,'png')
        # 从内存管理器取出img
        data = img.getvalue()
        return HttpResponse(data)

    前后台对比

    code = request.POST.get('code')
    if code.upper() == request.session.get('valid_code').upper():
        pass

    前端点击更换验证码

    <img src="/get_code/" class="col-xs-8" style="padding-left: 5px;padding-right: 1px" alt="" height="34" id="id_img">
    <script>
    //点击图片刷新功能
        $("#id_img").click(function () {
        $(this)[0].src=$(this)[0].src+"?"
        });
    </script>

    生成随机数颜色

    def get_random_color():
        '''
        生成3个随机数颜色
        '''
        return (random.randint(0,255),random.randint(0,255),random.randint(0,255))
    get_random_color()

    参考该文章:点我

  • 相关阅读:
    学号20145220《信息安全系统设计基础》第10周学习总结
    补发周四的博客。对之前的知识复习了一遍,因为要闭卷考试。
    jsp中文乱码
    redis做成windows服务
    poi导出excel打开文件时部分内容有问题
    mysql删除数据表时:Cannot delete or update a parent row: a foreign key constraint fails
    Oracle使用foreach批量操作数据
    Oracle数据库clob类型转String类型
    MAVEN配置多个仓库
    idea中maven项目明明有jar包还是爆红
  • 原文地址:https://www.cnblogs.com/nixindecat/p/10846891.html
Copyright © 2020-2023  润新知