/**
* 生成验证码
* @author:陈勇 QQ:369232566
*/
public String toValidateImage() {
String num = RndImage.random();
OutputStream out = null;
try {
out = response.getOutputStream();
RndImage.Imageout(num, out, 60, 20);
Smcy.settingSession(request, "validate", num);
} catch (IOException e) {
// TODO Auto-generated catch block
} finally {
if (null != out) {
// try {
// out.close();
// out.flush();
// } catch (IOException e) {
// TODO Auto-generated catch block
// }
}
}
return null;
}
00000000000000000000000000000000000000000000000
package com.cn.zy.utils.common;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;
/**
* XDoclet definition: 生成验证码类
*
* @author:陈勇 QQ:369232566
*
*/
public class RndImage {
// ������λ��ķ���
public static String random() {
java.util.Random rnd = new java.util.Random();
int i = 10000 + rnd.nextInt(10000);
String str = "" + i;
return str.substring(1, str.length());
}
public static void Imageout(String num, OutputStream out, int width,
int height) {
BufferedImage romimage = null;
java.util.Random rnd = new java.util.Random();
try {
romimage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) romimage.getGraphics();
g.setColor(Color.lightGray);
g.setBackground(Color.white);
g.fillRect(0, 0, width, height);
Font mFont = new Font("Tahoma", Font.ITALIC, height * 3 / 3);
g.setFont(mFont);
String[] str1 = new String[4];
for (int i = 0; i < str1.length; i++) {
str1[i] = "" + num.charAt(i);
g.setColor(getRandomColor());
g.drawString(str1[i], 13 * i + 1, height * 4 / 5);
}
for (int i = 0; i < 7; i++) {
int x = rnd.nextInt(width - 1);
int y = rnd.nextInt(height - 1);
int xl = rnd.nextInt(6) + 1;
int yl = rnd.nextInt(12) + 1;
g.drawLine(x, y, x + xl * 10, y + yl * 10);
}
for (int i = 0; i < 1; i++) {
int x = rnd.nextInt(width - 1);
int y = rnd.nextInt(height - 1);
int xl = rnd.nextInt(12) + 1;
int yl = rnd.nextInt(6) + 1;
g.drawLine(x, y, x - xl * 10, y - yl * 10);
}
g.dispose();
ImageIO.write(romimage, "JPEG", out);
} catch (IOException ex) {
// System.out.println("������֤�����ʧ�ܣ�" + ex.toString());
}
}
private static Color getRandomColor() {
java.util.Random rnd = new java.util.Random();
return new Color(rnd.nextInt(105), rnd.nextInt(105), rnd.nextInt(205));
}
}