zoukankan      html  css  js  c++  java
  • pillow模块

    pillow模块

    用于操作图片的模块

    安装

    pip install pillow

    生成验证码

    from PIL import Image,ImageDraw,ImageFont
    from io import BytesIO,StringIO
    import random
    def get_random():
        return random.randint(0,255),random.randint(0,255),random.randint(0,255)
    
    def get_code(request):
        #生成图片,参数第一位为mode,第二位是size,第三位是颜色rgb
        img_obj = Image.new("RGB",(360,35),get_random())
        #生成画笔对象,在谁身上画,就把谁传进去
        img_draw = ImageDraw.Draw(img_obj)
        #生成字体对象,里面传字体文件路径和字号
        img_font = ImageFont.truetype('static/font/111.ttf',30)
        code = ''
        for i in range(5):
            upper_str = chr(random.randint(65,90))
            lower_str = chr(random.randint(97,122))
            random_int = chr(random.randint(48,57))
            tmp = random.choice([upper_str,lower_str,random_int])
            #使用画笔对象生成文字
            img_draw.text((i*60+60,0),tmp,get_random(),img_font)
            code += tmp
        print(code)
        request.session['code'] = code
        io_obj = BytesIO()
        img_obj.save(io_obj,'png')
        #返回一个字符串
        return HttpResponse(io_obj.getvalue())
    

    说明:

    生成五位数的随机验证码图片,

    io模块用于直接在内存中操作图片,减少对硬盘的io操作.

    图片的缩放

    from PIL import Image
    
    # 打开一个jpg图像文件,注意是当前路径:
    im = Image.open('test.jpg')
    # 获得图像尺寸:
    w, h = im.size
    print('Original image size: %sx%s' % (w, h))
    # 缩放到50%:
    im.thumbnail((w//2, h//2))
    print('Resize image to: %sx%s' % (w//2, h//2))
    # 把缩放后的图像用jpeg格式保存:
    im.save('thumbnail.jpg', 'jpeg')
    

    图片的模糊

    from PIL import Image, ImageFilter
    
    # 打开一个jpg图像文件,注意是当前路径:
    im = Image.open('test.jpg')
    # 应用模糊滤镜:
    im2 = im.filter(ImageFilter.BLUR)
    im2.save('blur.jpg', 'jpeg')
    

    其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。

  • 相关阅读:
    js 前端开发 编程 常见知识点笔记
    重置 PowerShell 和 cmd 设置 样式 为系统默认值 powershell windows10
    useMemo和useCallback的区别 及使用场景
    数组去重,利用 ES6 的 reduce() 方法 和 include 判断 实现
    Java 中 Lombok 的使用,提高开发速度必备
    记录 windows 系统常用的 CMD 命令
    React Native 的 FlatList 组件 实现每次滑动一整项(item)
    Spring------mysql读写分离
    Webservice与CXF框架快速入门
    quartz
  • 原文地址:https://www.cnblogs.com/agsol/p/12013495.html
Copyright © 2011-2022 走看看