java - 简单的验证码并制作不同的颜色

标签 java servlets graphics captcha simplecaptcha

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

感谢所有有用的评论:)

最佳答案

您希望哪个部分是彩色的?例如,您可以通过 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

关于java - 简单的验证码并制作不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6543087/

相关文章:

java - Glassfish - EAR 包的 3.1.2 部署需要很长时间

java - Servlet 在过滤器中转发给出了意外结果

session - Tomcat 是如何维护 session 完整性的?

java - 转换为 PDF 时 iText XMLWorker 表异常

java - Java 中欧拉项目#14 的运行时间太长

java - JTA集成jBPM抛出 'Connection can not be used while enlisted in another transaction'

java - servletcontext.getRealPath ("/") 是什么意思,我应该什么时候使用它

graphics - Cray XK6 可以运行实时光线追踪器吗?

java - 用于绘制可编辑流程图的 Android(或 Android 兼容 Java)库

javascript - SVG 编辑器,还是 : SVG vs. JavaScript?