代码如下:package com.jcptchatest.servlet;
import java.awt.Font;
import com.octo.captcha.component.image.backgroundgenerator.BackgroundGenerator;
import com.octo.captcha.component.image.backgroundgenerator.FunkyBackgroundGenerator;
import com.octo.captcha.component.image.color.RandomRangeColorGenerator;
import com.octo.captcha.component.image.fontgenerator.FontGenerator;
import com.octo.captcha.component.image.fontgenerator.RandomFontGenerator;
import com.octo.captcha.component.image.textpaster.RandomTextPaster;
import com.octo.captcha.component.image.textpaster.TextPaster;
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 MyImageCaptchaEngine extends ListImageCaptchaEngine {    // 随机生成的字符组成
    private static final String RANDOM_WORD_GENERATOR = "0123456789";    // 验证码图片上显示的字符个数
    private static final int TEXT_SIZE = 4;
    
    //验证码图片上显示的字符的大小设置
    private static final int TEXT_WIDTH = 12;
    private static final int TEXT_HEIGHT = 13;    // 验证码图片的大小设置
    private static final int IMAGE_CAPTCHA_WIDTH = 50;
    private static final int IMAGE_CAPTCHA_HEIGHT = 20;    protected void buildInitialFactories() {
        // 随机生成的字符
        WordGenerator wgen = new RandomWordGenerator(RANDOM_WORD_GENERATOR);
        RandomRangeColorGenerator cgen = new RandomRangeColorGenerator(
                new int[]{ 0, 100 }, new int[]{ 0, 100 }, new int[]{ 0, 100 });
        // 文字显示的个数
        TextPaster textPaster = new RandomTextPaster(new Integer(TEXT_SIZE),
                new Integer(TEXT_SIZE), cgen, Boolean.TRUE);
        // 图片的大小
        BackgroundGenerator backgroundGenerator = new FunkyBackgroundGenerator(
                new Integer(IMAGE_CAPTCHA_WIDTH), new Integer(
                        IMAGE_CAPTCHA_HEIGHT));
        // 字体格式
        Font[] fontsList = new Font[]{ new Font("Arial", 0, 12),
                new Font("Tahoma", 0, 12), new Font("Verdana", 0, 12), };
        // 文字的大小
        FontGenerator fontGenerator = new RandomFontGenerator(new Integer(
                TEXT_WIDTH), new Integer(TEXT_HEIGHT), fontsList);        WordToImage wordToImage = new ComposedWordToImage(fontGenerator,
                backgroundGenerator, textPaster);
        this.addFactory(new GimpyFactory(wgen, wordToImage));
    }
},我想让我验证码生成的图片背景颜色亮一点点,然后验证码之间隔开一点距离,我看不懂代码的意思,请高手解决一下.主要是解决一下图片的背景色.

解决方案 »

  1.   

    http://hi.baidu.com/jchuyang/album/item/3159fa3ac7e6e7c4838b13f3.html
      

  2.   

     // 图片的大小
    改用
            BackgroundGenerator backgroundGenerator = new UniColorBackgroundGenerator(
            new Integer(300), new Integer(100) , Color.white);
    可以改变背景色
    至于文字居中的话应该是改
        // 验证码图片的大小设置
        private static final int IMAGE_CAPTCHA_WIDTH = 50;
        private static final int IMAGE_CAPTCHA_HEIGHT = 20;
    都改成40试试。