简单的Captcha和不同的颜色

时间:2011-07-01 02:42:12

标签: java servlets graphics captcha simplecaptcha

我刚刚看到这个链接为http://simplecaptcha.sourceforge.net/,它给出了一些图片的演示,显示验证码可以设计为彩色的,因此它不仅可以是黑色和白色。但由于某种原因,我找不到任何关于如何控制SimpleCaptcha颜色的教程:(如果你知道一些片段或教程请分享它们。

赞赏所有有用的评论:)

2 个答案:

答案 0 :(得分:6)

你想要哪种颜色?例如,您可以通过WordRenderer控制文本的颜色。可以找到如何使用Captcha.Builder的示例on their website。您可以在以下任何示例中添加以下内容:

List<java.awt.Color> textColors = Arrays.asList(
     Color.BLACK, Color.BLUE, Color.RED);
List<java.awt.Font> textFonts = Arrays.asList(
     new Font("Arial", Font.BOLD, 40), 
     new Font("Courier", Font.BOLD, 40));

java.awt.Color backgroundColor = Color.ORANGE;

Captcha captcha = new Captcha.Builder(200, 50)
    .addText(
        new DefaultTextProducer(), 
        new DefaultWordRenderer(textColors, textFonts))
    .addBackground(new FlatColorBackgroundProducer(backgroundColor))
    .build();

DefaultWordRenderer接受List种颜色和字体,以便您可以根据请求随机选择多种颜色/字体。所以,如果你只提供一种颜色和字体,那么你每次都会得到它们。如果你提供五种颜色和一种字体,那么每次都会得到相同的字体,但颜色将从你提供的五种颜色中随机选择。

上面的示例使用FlatColorBackgroundProducer,但还有其他选项,包括GradiatedBackgroundProducerSquigglesBackgroundProducer

答案 1 :(得分:1)

可能使用Class ColoredEdgesWordRenderer。看看http://simplecaptcha.sourceforge.net/javadocs/index.html