使用java显示随机图片

时间:2013-06-21 14:46:57

标签: java arrays swing random captcha

我试图显示基于Random()方法生成的随机图片(只是尝试类似验证码)。我从数组生成随机数,但不知道如何映射这些没有与图像。有任何想法吗 ?我到目前为止所做的事情:

import java.util.Arrays; import java.util.Random;

公共类Gen_Captcha {

static String[] myCaptchaLetters = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"};
Gen_Captcha captcha= new Gen_Captcha();
public static void main(String[] args) {
    Random randomGenerator = new Random();
    for(int i=0;i<5;i++){
        int random = randomGenerator.nextInt(62);
        System.out.print((myCaptchaLetters[random]));       
    }

}

}

}

注意:上面的代码不包含用于显示图像的swing框架代码。

3 个答案:

答案 0 :(得分:2)

创建List<BufferedImage>,并使用Collections.shuffle()随机化列表。使用列表的迭代器将随机访问图像而不重复。

答案 1 :(得分:1)

  

但不知道如何用图像映射这些不是

不要映射数字,映射字母:

Map<String, Image> images = new HashMap<String, Image>();
images.put("a", imageA);
images.put("b", imageB);

答案 2 :(得分:1)

您可能需要查看Graphics.drawString()

您可以通过创建BufferedImage来获取graphics2D对象 请注意,还有一些方法可以更改字体。 对于更高级的验证码,您可以使用相同的api来扭曲图像并在其上绘制随机内容。