标签:sed pillow inf request 图像处理 closed open function down
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。
由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
from PIL import Image #生成一张图片的第三方模块 from PIL import ImageDraw #在图片上写字 from PIL import ImageFont #生成字体对象
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))
标签:sed pillow inf request 图像处理 closed open function down
原文地址:https://www.cnblogs.com/nixindecat/p/10846891.html