jfinal ajax验证码,jfinal添加jcaptcha验证码实现方法

package com.g.core.common.JCaptcha;

import java.awt.Color;

import java.awt.Font;

import com.octo.captcha.component.image.backgroundgenerator.BackgroundGenerator;

import com.octo.captcha.component.image.backgroundgenerator.FileReaderRandomBackgroundGenerator;

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;

/**

* 生成验证码图片

*/

public class JCaptchaEngine extends ListImageCaptchaEngine {

public static final String IMAGE_CAPTCHA_KEY = "imageCaptcha";// ImageCaptcha对象存放在Session中的key

public static final String CAPTCHA_INPUT_NAME = "j_captcha";// 验证码输入表单名称

public static final String CAPTCHA_IMAGE_URL = "/captcha.jpg";// 验证码图片URL

private static final Integer MIN_WORD_LENGTH = 4;// 验证码最小长度

private static final Integer MAX_WORD_LENGTH = 4;// 验证码最大长度

private static final Integer IMAGE_HEIGHT = 28;// 验证码图片高度

private static final Integer IMAGE_WIDTH = 80;// 验证码图片宽度

private static final Integer MIN_FONT_SIZE = 16;// 验证码最小字体

private static final Integer MAX_FONT_SIZE = 16;// 验证码最大字体

private static final String RANDOM_WORD = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";// 随机字符

private static final String IMAGE_PATH = "./captcha/";// 随机背景图片路径

// 验证码随机字体

private static final Font[] RANDOM_FONT = new Font[] {

new Font("nyala", Font.BOLD, MIN_FONT_SIZE),

new Font("Arial", Font.BOLD, MIN_FONT_SIZE),

new Font("Bell MT", Font.BOLD, MIN_FONT_SIZE),

new Font("Credit valley", Font.BOLD, MIN_FONT_SIZE),

new Font("Impact", Font.BOLD, MIN_FONT_SIZE)

};

// 验证码随机颜色

private static final Color[] RANDOM_COLOR = new Color[] {

new Color(255, 255, 255),

new Color(255, 220, 220),

new Color(220, 255, 255),

new Color(220, 220, 255),

new Color(255, 255, 220),

new Color(220, 255, 220)

};

// 生成验证码

@Override

protected void buildInitialFactories() {

RandomListColorGenerator randomListColorGenerator = new RandomListColorGenerator(RANDOM_COLOR);

BackgroundGenerator backgroundGenerator = new FileReaderRandomBackgroundGenerator(IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_PATH);

WordGenerator wordGenerator = new RandomWordGenerator(RANDOM_WORD);

FontGenerator fontGenerator = new RandomFontGenerator(MIN_FONT_SIZE, MAX_FONT_SIZE, RANDOM_FONT);

TextDecorator[] textDecorator = new TextDecorator[] {};

TextPaster textPaster = new DecoratedRandomTextPaster(MIN_WORD_LENGTH, MAX_WORD_LENGTH, randomListColorGenerator, textDecorator);

WordToImage wordToImage = new ComposedWordToImage(fontGenerator, backgroundGenerator, textPaster);

addFactory(new GimpyFactory(wordGenerator, wordToImage));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值