from captcha.image import ImageCaptcha
from random import randint
from base64 import b64encode
from base64 import b64decode
from io import BytesIO
import random
from django.http import HttpResponse
def get_random_color():
R = random.randrange (0,255,1)
G = random.randrange (0,255,1)
B = random.randrange (0,255,1)
return (R, G, B)
def VCode(request,length=4, randcolor=get_random_color(),
words="0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ",
noisecurve_number=1, noisedot_width=6, noisedot_number=20):
n, key = len (words), ""
generator = ImageCaptcha (width=120, height=70)
for i in range (length):
key += words[randint(0, n - 1)]
img = generator.create_captcha_image (key, randcolor, get_random_color())
for i in range (noisecurve_number):
img = generator.create_noise_curve (img, randcolor)
img = generator.create_noise_dots (img, randcolor, noisedot_width, noisedot_number)
file = BytesIO ( )
img.save (file, format='png')
bytes = file.getvalue ( )
print (key)
if not request.session.session_key:
request.session.create ( )
session_id = request.session.session_key
request.session['code'] = key
return HttpResponse (b64encode (bytes))