图像处理标准库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()

 

参考该文章:点我

转载于:https://www.cnblogs.com/nixindecat/p/10846891.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值