Mercurial > ift6266
view data_generation/transformations/pycaptcha/Captcha/Visual/Tests.py @ 526:6013d91ddb7e
Updated chart for error rates (1.4% error on humans, and updated bibliographic references)
author | fsavard |
---|---|
date | Tue, 01 Jun 2010 20:18:55 -0400 |
parents | 1f5937e9e530 |
children |
line wrap: on
line source
""" Captcha.Visual.Tests Visual CAPTCHA tests """ # # PyCAPTCHA Package # Copyright (C) 2004 Micah Dowty <micah@navi.cx> # from Captcha.Visual import Text, Backgrounds, Distortions, ImageCaptcha from Captcha import Words import random __all__ = ["PseudoGimpy", "AngryGimpy", "AntiSpam"] class PseudoGimpy(ImageCaptcha): """A relatively easy CAPTCHA that's somewhat easy on the eyes""" def getLayers(self): word = Words.defaultWordList.pick() self.addSolution(word) return [ # random.choice([ # Backgrounds.CroppedImage(), # Backgrounds.TiledImage(), # ]), Text.TextLayer(word, borderSize=1), Distortions.SineWarp(), ] class AngryGimpy(ImageCaptcha): """A harder but less visually pleasing CAPTCHA""" def getLayers(self): word = Words.defaultWordList.pick() self.addSolution(word) return [ # suppression du background # Backgrounds.TiledImage(), # Backgrounds.RandomDots(), Text.TextLayer(word, borderSize=1), # Distortions.SineWarp(periodRange = (0.04, 0.07)) Distortions.WigglyBlocks(), ] class AntiSpam(ImageCaptcha): """A fixed-solution CAPTCHA that can be used to hide email addresses or URLs from bots""" fontFactory = Text.FontFactory(20, "vera/VeraBd.ttf") defaultSize = (512,50) def getLayers(self, solution="murray@example.com"): self.addSolution(solution) textLayer = Text.TextLayer(solution, borderSize = 2, fontFactory = self.fontFactory) return [ Backgrounds.CroppedImage(), textLayer, Distortions.SineWarp(amplitudeRange = (3, 5)), ] ### The End ###