*/
void ( , ){
try {
mage(68,22,new Color(150, 180, 195),,);
} catch ( e) {
// TODO Auto- catch block
e.();
.out.("驗(yàn)證碼生成失敗");
}
}
//創(chuàng)建算術(shù)驗(yàn)證碼圖片
void mage(int width,int ,Color , , ) {
bi = new (width, , .);
g = bi.();
g.();
g.(0, 0, width, );
= (g);
//(g,width,,5);
.write(bi, "JPG", .());
on(,);
}
//創(chuàng)建驗(yàn)證碼圖片
void (int width,int ,Color , , ) {
bi = new (width, , .);
g = bi.();
g.();
g.(0, 0, width, );
= (g);
(g,width,,5);
.write(bi, "JPG", .());
on(,);
}
//添加干擾線
void ( g,int width,int ,int ) {
r = new ();
for (int i =0; i < ; i++) {
int x1 = r.(width);
int x2 = r.(width);
int y1 = r.();
int y2 = r.();
g.(new Color(r.(255),r.(255),r.(255)));
g.(x1, y1, x2, y2);
}
}
//隨機(jī)創(chuàng)建驗(yàn)證碼
( g) {
char[] code = "".();
r = new ();
int len = code.;
sb = new ();
for (int i =0; i < 4; i++) {
int index = r.(len);
//記得在向圖片添加驗(yàn)證碼前設(shè)置驗(yàn)證碼的顏色java 驗(yàn)證碼去干擾線java 驗(yàn)證碼去干擾線,否則可能會(huì)出現(xiàn)有一個(gè)驗(yàn)證碼看不見(jiàn)的情況
g.(new Color(r.(88),r.(188),r.(255)));
g.(code[index]+"", (i*15)+3, 18);
sb.(code[index]);
}
.out.(sb);
sb.();
}
//創(chuàng)建隨機(jī)算數(shù)驗(yàn)證碼
( g) {
r = new ();
char[] code1 = "".();
char[] code2 = "+-*".();
int num1 = .(code1[r.(code1.)] +"");
= code2[r.(code2.)] +"";
int num2 = .(code1[r.(code1.)] +"");
= (num1,num2,) + "";
g.(new Color(r.(88),r.(188),r.(255)));
g.(num1+"", 0, 18);
g.(new Color(r.(88),r.(188),r.(255)));
g.(, 20, 18);
g.(new Color(r.(88),r.(188),r.(255)));
g.(num2+"", 40, 18);
;
}
//進(jìn)行驗(yàn)證碼計(jì)算
int (int num1,int num2, ) {
int = 0;
() {
case "+":
= num1 + num2;
break;
case "-":
= num1 - num2;
break;
case "*":
= num1 * num2;
break;
}
;
}
//把驗(yàn)證碼中的數(shù)據(jù)存儲(chǔ)在,以便來(lái)驗(yàn)證登錄
void on( , str) {
.().("code", str);
}
}