comparison data_generation/transformations/pycaptcha/Captcha/Visual/Tests.py @ 167:1f5937e9e530

More moves - transformations into data_generation, added "deep" folder
author Dumitru Erhan <dumitru.erhan@gmail.com>
date Fri, 26 Feb 2010 14:15:38 -0500
parents pycaptcha/Captcha/Visual/Tests.py@4775b4195b4b
children
comparison
equal deleted inserted replaced
166:17ae5a1a4dd1 167:1f5937e9e530
1 """ Captcha.Visual.Tests
2
3 Visual CAPTCHA tests
4 """
5 #
6 # PyCAPTCHA Package
7 # Copyright (C) 2004 Micah Dowty <micah@navi.cx>
8 #
9
10 from Captcha.Visual import Text, Backgrounds, Distortions, ImageCaptcha
11 from Captcha import Words
12 import random
13
14 __all__ = ["PseudoGimpy", "AngryGimpy", "AntiSpam"]
15
16
17 class PseudoGimpy(ImageCaptcha):
18 """A relatively easy CAPTCHA that's somewhat easy on the eyes"""
19 def getLayers(self):
20 word = Words.defaultWordList.pick()
21 self.addSolution(word)
22 return [
23 # random.choice([
24 # Backgrounds.CroppedImage(),
25 # Backgrounds.TiledImage(),
26 # ]),
27 Text.TextLayer(word, borderSize=1),
28 Distortions.SineWarp(),
29 ]
30
31
32 class AngryGimpy(ImageCaptcha):
33 """A harder but less visually pleasing CAPTCHA"""
34 def getLayers(self):
35 word = Words.defaultWordList.pick()
36 self.addSolution(word)
37 return [
38 # suppression du background
39 # Backgrounds.TiledImage(),
40 # Backgrounds.RandomDots(),
41 Text.TextLayer(word, borderSize=1),
42 # Distortions.SineWarp(periodRange = (0.04, 0.07))
43 Distortions.WigglyBlocks(),
44 ]
45
46
47 class AntiSpam(ImageCaptcha):
48 """A fixed-solution CAPTCHA that can be used to hide email addresses or URLs from bots"""
49 fontFactory = Text.FontFactory(20, "vera/VeraBd.ttf")
50 defaultSize = (512,50)
51
52 def getLayers(self, solution="murray@example.com"):
53 self.addSolution(solution)
54
55 textLayer = Text.TextLayer(solution,
56 borderSize = 2,
57 fontFactory = self.fontFactory)
58
59 return [
60 Backgrounds.CroppedImage(),
61 textLayer,
62 Distortions.SineWarp(amplitudeRange = (3, 5)),
63 ]
64
65 ### The End ###