def tp_captcha_generate_image(h): if h >= 32: captcha_image_t = captcha( width=136, height=36, drawings=[ background(color='#eeeeee'), curve(color='#bbbbbb', width=6, number=12), curve(color=_random_color_line, width=2, number=30), curve(color='#cccccc', width=7, number=13), curve(color='#dddddd', width=8, number=14), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], font_sizes=(h-5, h-2, h, h+2), color=_random_color_font, squeeze_factor=1.05, drawings=[ warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), smooth(), ]) else: captcha_image_t = captcha( width=int(h*3)+8, height=h, drawings=[ background(color='#eeeeee'), noise(number=40, color='#dddddd', level=3), smooth(), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], font_sizes=(h-3, h-2, h-1, h), color=_random_color_font, squeeze_factor=0.95, drawings=[ warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=15), offset() ]), smooth(), ]) chars_t = random.sample(_captcha_chars, 4) image = captcha_image_t(chars_t) out = io.BytesIO() image.save(out, "jpeg", quality=80) return ''.join(chars_t), out.getvalue()
def __init__(self, code, count=4, width=200, height=75, fonts_dir='static/fonts', captcha_type='png'): super(Captcha, self).__init__() self.code = code self.count = count self.width = width self.height = height self.fonts_dir = fonts_dir self.captcha_type = captcha_type self.captcha_image = captcha(drawings=[ background(), text(fonts=[ path.join(fonts_dir, '78640___.TTF'), path.join(fonts_dir, '46152___.TTF') ], drawings=[warp(), rotate(), offset()]), curve(), noise(), smooth() ])
def create_check_image(timestamp): image_drawings = [ background(), text(fonts=[ os.path.join(settings.CHECK_IMAGE_FONTS_PATH, font_path) for font_path in os.listdir(settings.CHECK_IMAGE_FONTS_PATH) ], drawings=[warp(), rotate(), offset()]), curve(number=4), noise(), smooth(), ] image_layout = captcha(drawings=image_drawings) value = sample(settings.CHECK_STR, 4) image_file = 'tmp_check_{}.JPEG'.format(timestamp) image_layout(value).save(image_file) with open(image_file, 'rb') as f: image_base64 = b64encode(f.read()) os.remove(image_file) image_id = '{}{}'.format( md5(sha1(image_base64).hexdigest().encode('utf-8')).hexdigest(), timestamp) image, is_image = CheckImage.objects.get_or_create( image_id=image_id, image_value=''.join(value)) if is_image is False: return create_check_image(timestamp) return (image.image_id, image_base64.decode('utf-8'))
def gen_captcha(): captcha_image_t = captcha( width=136, height=36, drawings=[ background(color='#eeeeee'), # curve(color='#4388d5', width=1, number=10), curve(color='#4388d5', width=1, number=10), curve(color='#af6fff', width=3, number=16), noise(number=80, color='#eeeeee', level=3), text( fonts=[os.path.join(cfg.res_path, 'fonts', '001.ttf')], # font_sizes=(28, 34, 36, 32), font_sizes=(34, 40, 32, 36), color='#63a8f5', # squeeze_factor=1.2, squeeze_factor=0.9, drawings=[ # warp(dx_factor=0.05, dy_factor=0.05), warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), # curve(color='#af6fff', width=3, number=16), noise(number=30, color='#eeeeee', level=2), smooth(), ]) chars_t = random.sample(_captcha_chars, 4) image = captcha_image_t(chars_t) out = io.BytesIO() image.save(out, "jpeg", quality=100) # web.header('Content-Type','image/jpeg') return ''.join(chars_t), out.getvalue()
def new_captcha(): import random import string import StringIO value = '' img_date = '' try: captcha_image = captcha(drawings=[ background('#fcf7e2'), text(fonts=[os.path.join( ttf_path,'ttf','OsakaMono.ttf')], font_sizes=(40,45,50), drawings=[ warp(), rotate(), offset() ], color='#4e97c7' ), curve('#4e97c7',width=0, number=2), noise(number=0), smooth()], width=112, height=38) value = ''.join(random.sample(string.uppercase + string.digits, 4)) image = captcha_image(value) img_file = StringIO.StringIO() image.save( img_file, 'jpeg', quality=80) img_file.seek(0) img_date = img_file.read() except Exception,ex: logging.error('create captcha img failed.')
def init_captcha(pelican): if not 'PELICAPTCHA_FONT' in pelican.settings: raise Exception('please configure a font using the PELICAPTCHA_FONT config variable') fonts = [ pelican.settings['PELICAPTCHA_FONT'] ] text_drawings = [ warp(), rotate(), offset() ] text_function = text(fonts=fonts, drawings=text_drawings) drawings = [ background(), text_function, curve(), smooth() ] global captcha_image captcha_image = captcha(drawings)
def get(request): captcha_image = captcha(drawings=[ background(), text(fonts=[path.join(Captcha._fontsDir, 'captcha.ttf')], drawings=[warp(), rotate(), offset()]), curve(), noise(), smooth() ]) chars = random.sample(_chars, 4) image = captcha_image(chars) request.set_session(Captcha._session_name_, ''.join(chars)) return image, ''.join(chars)
def generate_captcha(self): from wheezy.captcha.image import captcha from wheezy.captcha.image import background from wheezy.captcha.image import curve from wheezy.captcha.image import noise from wheezy.captcha.image import smooth from wheezy.captcha.image import text from wheezy.captcha.image import offset from wheezy.captcha.image import rotate from wheezy.captcha.image import warp import random import string def _file_to_base64(stream): image_data = base64.b64encode(stream) return 'data:image/{0};base64,{1}'.format('captcha_image', image_data) captcha_image = captcha(drawings=[ text( fonts = [ '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf', ], drawings=[ warp(0.5), rotate(), offset() ]), curve(), noise(), smooth() ], width=300) allowed_chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789' captcha_string = '' for i in range(0, 5): captcha_string += random.choice(allowed_chars) #captcha_string = list(random.sample(string.uppercase + string.digits, 4)) session['contact_form_captcha_key'] = ''.join(captcha_string) session.save() image = captcha_image(captcha_string) output = StringIO.StringIO() image.save(output, 'JPEG', quality=75) contents = output.getvalue() return _file_to_base64(contents)
def captcha_view(): out = StringIO() captcha_image = captcha(drawings=[ background(), text(fonts=current_app.config['CAPTCHA_FONTS'], drawings=[warp(), rotate(), offset()]), curve(), noise(), smooth(), ]) captcha_code = ''.join(sample_chars()) imgfile = captcha_image(captcha_code) session['captcha'] = captcha_code imgfile.save(out, 'PNG') out.seek(0) response = make_response(out.read()) response.content_type = 'image/png' return response
def create_captcha(): captcha_image = captcha(drawings=[ background(), text(fonts=[ os.path.join(os.path.abspath(os.path.dirname(__file__))) + '/fonts/Georgia.ttf', os.path.join(os.path.abspath(os.path.dirname(__file__))) + '/fonts/FreeSans.ttf' ], drawings=[warp(), rotate(), offset()]), curve(), noise(), smooth() ]) chars = random.sample(string.ascii_letters + string.digits, 4) return captcha_image(chars), chars
def generate_image(self, chars): text_drawings = [ wheezy_captcha.warp(), wheezy_captcha.rotate(), wheezy_captcha.offset(), ] fn = wheezy_captcha.captcha( drawings=[ wheezy_captcha.background(), wheezy_captcha.text(fonts=self._fonts, drawings=text_drawings), wheezy_captcha.curve(), wheezy_captcha.noise(), wheezy_captcha.smooth(), ], width=self._width, height=self._height, ) return fn(chars)
def captcha_view(): out = StringIO() captcha_image = captcha(drawings=[ background(), text(fonts=current_app.config['CAPTCHA_FONTS'], drawings=[warp(),rotate(), offset()]), curve(), noise(), smooth(), ], width=200, height=75) captcha_code = ''.join(sample_chars()) imgfile = captcha_image(captcha_code) session['captcha'] = captcha_code.lower() imgfile.save(out, 'PNG') out.seek(0) response = make_response(out.read()) response.content_type = 'image/png' return response
def code2image(code): """ 将验证码生成验证码图片 """ captcha_image = image.captcha(drawings=[ background(), text(fonts=FONTS, drawings=[image.warp( ), image.rotate(), image.offset()]), image.curve(), image.noise(), image.smooth() ]) image = captcha_image(code) out = StringIO() image.save(out, "jpeg", quality=75) response = make_response(out.getvalue()) response.headers['Content-Type'] = 'image/jpeg' return response
def get(request): captcha_image = captcha(drawings=[ background(), text(fonts=[ path.join(Captcha._fontsDir,'captcha.ttf')], drawings=[ warp(), rotate(), offset() ]), curve(), noise(), smooth() ]) chars = random.sample(_chars, 4) image = captcha_image(chars) request.session[Captcha._session_name_] = ''.join(chars) #print request.session[Captcha._session_name_] return image, ''.join(chars)
def my_captcha(fg_col='#5C87B2', bg_col='#EEEECC'): cap = captcha( drawings=[ background(color=bg_col), text(fonts=['fonts/CourierNewBold.ttf'], # font_sizes=[60, 50, 45, 65], font_sizes=[40, 35, 45], color=fg_col, drawings=[ warp(dx_factor=0.2, dy_factor=0.3), rotate(angle=20), offset(dx_factor=0.4, dy_factor=0.5), ]), curve(color=fg_col, width=3, number=20), noise(number=250, color=bg_col, level=2), smooth() ], width=400, height=50, ) return cap
def getNewCaptcha(): captcha_image = captcha(drawings=[ background(), text(fonts=[ os.path.join(os.path.dirname(os.path.dirname(__file__)), 'fonts/CourierNew-Bold.ttf'), os.path.join(os.path.dirname(os.path.dirname(__file__)), 'fonts/LiberationMono-Bold.ttf')], drawings=[ warp(), rotate(), offset() ]), curve(), noise(), smooth() ]) rand_string = random.sample(string.uppercase + string.digits, 4) print(rand_string) image = captcha_image(rand_string) return ''.join(rand_string), image
def text_to_image(text): image_factory = image.captcha(drawings=[ image.background(), image.text( fonts=[ _resource_path('MSYHBD.TTF'), _resource_path('MSYHBD.TTF') ], drawings=[ image.warp(), image.rotate(), image.offset() ] ), image.curve(), image.noise(), image.smooth() ]) image_obj = image_factory(list(text)) buf = StringIO.StringIO() image_obj.save(buf, 'jpeg', quality=80) return buf.getvalue()
def GET(self, params): captcha_image = captcha(drawings=[ background(), text(fonts=[ path.join(_fontsDir,'DejaVuSans.ttf'), path.join(_fontsDir,'DejaVuSans-Bold.ttf')], drawings=[ #warp(), #rotate(), offset() ]), #curve(), #noise(), smooth() ]) chars = random.sample(_chars, 4) session.captcha = ''.join(chars) image = captcha_image(chars) out = StringIO() image.save(out,"jpeg",quality=75) web.header('Content-Type','image/jpeg') return out.getvalue()
def generate( self, chars: str, *, width: int = 300, height: int = 125, background_color: str = "#EEEECC", text_color: str = "#5C87B2", text_squeeze_factor: float = 0.8, noise_number: int = 30, noise_color: str = "#EEEECC", noise_level: int = 2, **kwargs, ): fn: PIL.Image = wheezy_captcha.captcha( drawings=[ wheezy_captcha.background(background_color), wheezy_captcha.text( fonts=self.fonts, font_sizes=self.fonts_sizes, drawings=[ wheezy_captcha.warp(), wheezy_captcha.rotate(), wheezy_captcha.offset(), ], color=text_color, squeeze_factor=text_squeeze_factor, ), wheezy_captcha.curve(), wheezy_captcha.noise(number=noise_number, color=noise_color, level=noise_level), wheezy_captcha.smooth(), ], width=width, height=height, ) return fn(chars)
def GET(self): print(_fontsDir) captcha_image = captcha(drawings=[ background(), text(fonts=[ path.join(_fontsDir,'Candara.ttf')], drawings=[ warp(), rotate(), offset() ]), curve(), noise(), smooth() ]) chars = random.sample(_chars, 4) web.config.session_parameters['capctha'] = ''.join(chars) #session[SESSION_KEY_CAPTCHA] = ''.join(chars) image = captcha_image(chars) out = StringIO() image.save(out,"jpeg",quality=75) web.header('Content-Type','image/jpeg') return out.getvalue()
def get(self): temp_uid = self.get_cookie('_t') if not temp_uid: print('NO COOKIE!!!') self.finish() return # num = ''.join(random.sample('acdefghkmnprstuvwxyABCDEFGHKMNPRSTUVWXY345678', 4)) num = ''.join(random.sample('1234567890', 4)) print('CAPTCHA: [%s:%s]' % (temp_uid, num)) self.master.setex('captcha:' + temp_uid, 60, num) captcha_image = captcha( drawings=[ # background(), text( fonts=[ # 'fonts/Lobster_Two/LobsterTwo-BoldItalic.ttf', 'fonts/Special_Elite/SpecialElite.ttf' ], drawings=[warp(), rotate(), offset()]), curve(), noise(), smooth(), ], width=300) image = captcha_image(num) fp = BytesIO() image.save(fp, 'JPEG', quality=60) fp.seek(0) self.set_header("Content-type", "image/jpeg") self.write(fp.read()) self.finish()
fonts = ['./comic-sans-ms.ttf'] text_drawings = [ #warp(dx_factor=0.27, dy_factor=0.21), rotate(angle=25), offset(dx_factor=0.1, dy_factor=0.2), ] drawings = [ background(color='#dcdcdc'), text(fonts=fonts, font_sizes=(28, 28, 28), drawings=text_drawings, color='#32fa32', squeeze_factor=1), #curve(), noise(number=60, color='#69d748', level=2), smooth(), ] generator = captcha(drawings=drawings, width=150, height=50) def captcha_gen(string_size, generator): string = chars_generator(string_size) img = generator(string) pix = np.array(img) return pix, string def chars_generator(size=4, chars=string.digits + string.ascii_uppercase): return ''.join(random.choice(chars) for _ in range(size))
def tp_captcha_generate_image(h): if h >= 32: captcha_image_t = captcha(width=136, height=36, drawings=[ background(color='#eeeeee'), curve(color='#bbbbbb', width=6, number=12), curve(color=_random_color_line, width=2, number=30), curve(color='#cccccc', width=7, number=13), curve(color='#dddddd', width=8, number=14), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], font_sizes=(h - 5, h - 2, h, h + 2), color=_random_color_font, squeeze_factor=1.05, drawings=[ warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), smooth(), ]) else: captcha_image_t = captcha(width=int(h * 3) + 8, height=h, drawings=[ background(color='#eeeeee'), noise(number=40, color='#dddddd', level=3), smooth(), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], font_sizes=(h - 3, h - 2, h - 1, h), color=_random_color_font, squeeze_factor=0.95, drawings=[ warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=15), offset() ]), smooth(), ]) chars_t = random.sample(_captcha_chars, 4) image = captcha_image_t(chars_t) out = io.BytesIO() image.save(out, "jpeg", quality=80) return ''.join(chars_t), out.getvalue()
def tp_captcha_generate_image_v1(h): if h >= 32: captcha_image_t = captcha( width=136, height=36, drawings=[ background(color='#eeeeee'), # curve(color='#4388d5', width=1, number=10), curve(color='#4388d5', width=1, number=10), curve(color='#af6fff', width=3, number=16), noise(number=80, color='#eeeeee', level=3), smooth(), text( fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], # font_sizes=(28, 34, 36, 32), font_sizes=(h - 4, h - 2, h, h + 1), color='#63a8f5', # squeeze_factor=1.2, squeeze_factor=0.9, drawings=[ # warp(dx_factor=0.05, dy_factor=0.05), warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), curve(color='#af6fff', width=3, number=16), noise(number=20, color='#eeeeee', level=2), smooth(), ]) else: captcha_image_t = captcha( width=int(h * 3) + 8, height=h, drawings=[ background(color='#eeeeee'), # curve(color='#4388d5', width=1, number=10), curve(color='#4388d5', width=1, number=10), curve(color='#af6fff', width=3, number=16), noise(number=40, color='#eeeeee', level=2), smooth(), text( fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], # font_sizes=(28, 34, 36, 32), font_sizes=(h - 2, h - 1, h, h + 1), color='#63a8f5', # squeeze_factor=1.2, squeeze_factor=0.9, drawings=[ # warp(dx_factor=0.05, dy_factor=0.05), warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), curve(color='#4388d5', width=1, number=8), noise(number=10, color='#eeeeee', level=1), # smooth(), ]) chars_t = random.sample(_captcha_chars, 4) image = captcha_image_t(chars_t) out = io.BytesIO() image.save(out, "jpeg", quality=100) return ''.join(chars_t), out.getvalue()
def tp_captcha_generate_image_v1(h): if h >= 32: captcha_image_t = captcha( width=136, height=36, drawings=[ background(color='#eeeeee'), # curve(color='#4388d5', width=1, number=10), curve(color='#4388d5', width=1, number=10), curve(color='#af6fff', width=3, number=16), noise(number=80, color='#eeeeee', level=3), smooth(), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], # font_sizes=(28, 34, 36, 32), font_sizes=(h-4, h-2, h, h+1), color='#63a8f5', # squeeze_factor=1.2, squeeze_factor=0.9, drawings=[ # warp(dx_factor=0.05, dy_factor=0.05), warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), curve(color='#af6fff', width=3, number=16), noise(number=20, color='#eeeeee', level=2), smooth(), ]) else: captcha_image_t = captcha( width=int(h*3)+8, height=h, drawings=[ background(color='#eeeeee'), # curve(color='#4388d5', width=1, number=10), curve(color='#4388d5', width=1, number=10), curve(color='#af6fff', width=3, number=16), noise(number=40, color='#eeeeee', level=2), smooth(), text(fonts=[ os.path.join(tp_cfg().res_path, 'fonts', '001.ttf') ], # font_sizes=(28, 34, 36, 32), font_sizes=(h-2, h-1, h, h+1), color='#63a8f5', # squeeze_factor=1.2, squeeze_factor=0.9, drawings=[ # warp(dx_factor=0.05, dy_factor=0.05), warp(dx_factor=0.03, dy_factor=0.03), rotate(angle=20), offset() ]), curve(color='#4388d5', width=1, number=8), noise(number=10, color='#eeeeee', level=1), # smooth(), ]) chars_t = random.sample(_captcha_chars, 4) image = captcha_image_t(chars_t) out = io.BytesIO() image.save(out, "jpeg", quality=100) return ''.join(chars_t), out.getvalue()
#encoding=utf-8 from wheezy.captcha.image import captcha, background, text, warp, rotate, offset, curve, noise, smooth from os import path import random _fontsDir='E:\selfwork\lunchOrder\src\lunchOrder\\test\\' _letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z _upper_cases = _letter_cases.upper() # 大写字母 _numbers = ''.join(map(str, range(3, 10))) # 数字 init_chars = ''.join((_letter_cases, _upper_cases, _numbers)) captcha_image_t = captcha(drawings=[ background(), text(fonts=[ # path.join(_fontsDir,'ae_AlArabiya.ttf'), path.join(_fontsDir,'FreeSans.ttf')], drawings=[ warp(), rotate(), offset() ]), curve(), noise(), smooth() ]) chars_t = random.sample(init_chars, 4) print chars_t image_t = captcha_image_t(chars_t) image_t.save('test.jpeg','jpeg',quality=75)