⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplecaptchaengine.java

📁 anewssystem新闻发布系统集成使用了spring hibernate freemarker EXTJS等开源框架 可以作为学习参考
💻 JAVA
字号:
package anni.core.security.jcaptcha.engine;

import java.awt.Color;

import com.octo.captcha.component.image.backgroundgenerator.BackgroundGenerator;
import com.octo.captcha.component.image.backgroundgenerator.GradientBackgroundGenerator;
import com.octo.captcha.component.image.color.RandomListColorGenerator;
import com.octo.captcha.component.image.fontgenerator.FontGenerator;
import com.octo.captcha.component.image.fontgenerator.RandomFontGenerator;
import com.octo.captcha.component.image.textpaster.DecoratedRandomTextPaster;
import com.octo.captcha.component.image.textpaster.TextPaster;
import com.octo.captcha.component.image.textpaster.textdecorator.TextDecorator;
import com.octo.captcha.component.image.wordtoimage.ComposedWordToImage;
import com.octo.captcha.component.image.wordtoimage.WordToImage;
import com.octo.captcha.component.word.wordgenerator.RandomWordGenerator;
import com.octo.captcha.component.word.wordgenerator.WordGenerator;
import com.octo.captcha.engine.image.ListImageCaptchaEngine;
import com.octo.captcha.image.gimpy.GimpyFactory;


/**
 * Captcha增强版本.
 *
 * @author david.turing@gmail.com
 * @modifyTime 21:01:52
 * @description Install Captcha Instruction
 * 1,add captchaValidationProcessingFilter to applicationContext-acegi-security.xml
 * 2,modify applicationContext-security-captcha.xml:
 * 2.1 make sure that captchaValidationProcessingFilter Call captchaService
 * 2.2 config CaptchaEngine for captchaService (refer imageCaptchaService)
 * 2.3 write your own CaptchaEngine(eg:SpringSideCaptchaEngine, SpringSideCaptchaEngineEx...)
 * 2.4 config the following, so that SpringSide use SpringSideCaptchaEngineEx to
 * generate the captcha image.
 * <constructor-arg type="com.octo.captcha.engine.CaptchaEngine" index="1">
 * <ref bean="SpringSideCaptchaEngineEx"/>
 * </constructor-arg>
 * 3,Test your captcha
 *
 * @author Lingo
 * @since 2007-04-07
 * @version 1.0
 */
public class SimpleCaptchaEngine extends ListImageCaptchaEngine {
    /**
     * 建立初始化工厂.
     */
    protected void buildInitialFactories() {
        /**
         * Set Captcha Word Length Limitation which should not over 6
         */

        // 生成文字的最小数量
        Integer minAcceptedWordLength = Integer.valueOf(4);

        // 生成文字的最大数量
        Integer maxAcceptedWordLength = Integer.valueOf(5);

        // 图片高度
        Integer imageHeight = Integer.valueOf(40);

        // 图片宽度
        Integer imageWidth = Integer.valueOf(100);

        // 文字最小字体
        Integer minFontSize = Integer.valueOf(20);

        // 文字最大字体
        Integer maxFontSize = Integer.valueOf(20);

        // 随机生成文字的范围
        WordGenerator wordGenerator = (new RandomWordGenerator(
                "0123456789"));

        // 白色背景
        BackgroundGenerator backgroundGenerator = new GradientBackgroundGenerator(imageWidth,
                imageHeight, Color.white, Color.white);

        // 根据最大和最小字体,生成文字
        FontGenerator fontGenerator = new RandomFontGenerator(minFontSize,
                maxFontSize);

        // 生成彩色文字
        Color[] colors = new Color[] {
                Color.black, Color.blue, Color.green, Color.red
            };
        RandomListColorGenerator colorGenerator = new RandomListColorGenerator(colors);

        TextPaster textPaster = new DecoratedRandomTextPaster(minAcceptedWordLength,
                maxAcceptedWordLength, colorGenerator, new TextDecorator[0]);

        /**
         * ok, generate the WordToImage Object for logon service to use.
         */
        WordToImage wordToImage = new ComposedWordToImage(fontGenerator,
                backgroundGenerator, textPaster);
        addFactory(new GimpyFactory(wordGenerator, wordToImage));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -