# -*- coding:utf-8 -*- from django.shortcuts import HttpResponse def verifycoderequest): # 引入绘图模块 from PIL import Image,ImageDraw,ImageFont #引入随机函数模块 import random #定义变量,用于画面的背景色,宽,高 bgcolor = random.randrange20,100),random.randrange20,100),random.randrange20,100)) width = 100 height = 50 #创建画面对象 im = Image.new'RGB',width,height),bgcolor) #创建画笔对象 draw = ImageDraw.Drawim) #调用画笔的point)函数绘制噪点 for i in range0,100): #这个是画点 xy = random.randrange0,width),random.randrange0,height)) #这个是颜色的填充 fill = random.randrange0,255),255,random.randrange0,255)) draw.pointxy,fill=fill) #定义验证码的备用值 str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm' #随机选取4个值作为验证码 rand_str = '' for i in range0,4): rand_str += str[random.randrange0,lenstr))] #构造字体对象 把C盘的字体文件放到其它盘,因为C盘字体文件路径不好找 font = ImageFont.truetype"E:\simsunb.ttf", 36) fontcolor1 = 255, random.randrange0,255), random.randrange0,255)) fontcolor2 = 255, random.randrange0,255), random.randrange0,255)) fontcolor3 = 255, random.randrange0,255), random.randrange0,255)) fontcolor4 = 255, random.randrange0,255), random.randrange0,255)) #绘制4个字 draw.text5,2), rand_str[0], font=font, fill=fontcolor1) draw.text25,2), rand_str[1], font=font, fill=fontcolor2) draw.text50,2), rand_str[2], font=font, fill=fontcolor3) draw.text75,2), rand_str[3], font=font, fill=fontcolor4) #释放画笔 del draw # request.session['verifycode'] = rand_str #内存文件操作 import io buf = io.BytesIO) #将图片保存在内存中,文件类型为png im.savebuf,'png') #将内存中的图片数据返回给客户端,MIME类型为图片png return HttpResponsebuf.getvalue),'image/png') #备注: # code1 = request.session['verify'] 【登录获取图片上的验证码】 #code2 = request.POST.get'verifycode') 【获取登录表单上输入的验证码】
转载于:https://www.cnblogs.com/weilaibuxiangshuo/p/10401044.html