自定义SimpleCaptcha

时间:2011-05-02 11:52:28

标签: captcha simplecaptcha

我们正在使用SimpleCaptcha http://simplecaptcha.sourceforge.net/在我们的注册表单中创建验证码(在Tomcat上运行)

我们使用以下方法创建验证码:

Captcha captcha = new Captcha.Builder(300, 57).build(); 

,验证码显示如下: enter image description here

但是当我向验证码添加更多选项时,例如Captcha captcha = new Captcha.Builder(300, 57).addNoise().build();,它仍然以相同的方式显示而没有噪音。我尝试了更多选项,但仍然得到了相同的结果。

有人知道为什么会这样吗?

谢谢,

库尔特

1 个答案:

答案 0 :(得分:1)

我尝试了上面的代码(使用java 1.6版本)并且它什么也没产生。原因是你没有.addText()。 (我本来会把它写成评论,但我没有足够的声誉)。这告诉我,上面的代码不是您的实际代码,也许您在发布时忘记了一些内容。

以下是我使用的方法:

public class MyCaptchaServlet extends SimpleCaptchaServlet
{
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
        Captcha captcha = new Captcha.Builder(120,40).addText().addBorder().gimp().addBackground(new GradiatedBackgroundProducer()).build();

        CaptchaServletUtil.writeImage(response, captcha.getImage());

        request.getSession().setAttribute(Captcha.NAME, captcha);
    }
}

在.build()之前添加.addNoise()会显示噪音。