資源簡介
http://blog.csdn.net/hacke2/article/details/8215214

代碼片段和文件信息
package?action;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.image.BufferedImage;
import?java.io.ByteArrayInputStream;
import?java.io.ByteArrayOutputStream;
import?java.util.Map;
import?javax.imageio.ImageIO;
import?javax.imageio.stream.ImageOutputStream;
import?com.opensymphony.xwork2.ActionContext;
import?com.opensymphony.xwork2.ActionSupport;
public?class?ImageAction?extends?ActionSupport?{
private?static?final?long?serialVersionUID?=?1L;
private?ByteArrayInputStream?inputStream;
public?String?creatRandomString()?{
String?str?=?““;
for(int?i?=?0;?i?4?;?i++)?{
str?+=?Integer.toString((new?Double(Math.random()?*?10)).intValue());
}
return?str;
}
public?Color?createsRandomColor()?{
int?r?=?(new?Double(Math.random()?*?256)).intValue();
int?g?=?(new?Double(Math.random()?*?256)).intValue();
int?b?=?(new?Double(Math.random()?*?256)).intValue();
return?new?Color(r?g?b);
}
public?BufferedImage?createImage(String?str)?{
int?width?=?60;
int?height?=?22;
BufferedImage?image?=?new?BufferedImage(width?height?BufferedImage.TYPE_INT_RGB);
//獲取圖形上下文
Graphics?g?=?image.getGraphics();
//設定背景色
g.setColor(Color.WHITE);
g.fillRect(0?0?width?height);
//畫邊框
g.setColor(Color.black);
g.drawRect(0?0?width?-?1?height?-?1);
//將認證碼顯示到圖像中
g.setFont(new?Font(“Atlantic?Inline“?Font.PLAIN?18));
//使用隨便顏色
g.setColor(this.createsRandomColor());
//將隨機字符串的每個數(shù)字分別寫到圖片上
g.drawString(Character.toString(str.charAt(0))?8?17);
g.drawString(Character.toString(str.charAt(1))?20?17);
g.drawString(Character.toString(str.charAt(2))?33?17);
g.drawString(Character.toString(str.charAt(3))?45?17);
//圖像生效
g.dispose();
return?image;
}
//將圖片以字節(jié)形式寫到InputStream里
public?ByteArrayInputStream?createInuptStream()?throws?Exception?{
//獲取隨機字符串
String?str?=?this.creatRandomString();
BufferedImage?image?=?this.createImage(str);
//將產生的字符串寫入session,供校驗時使用;
ActionContext?actionContext?=?ActionContext.getContext();
Map?session?=?actionContext.getSession();
session.put(“random“?str);
ByteArrayOutputStream?output?=?new?ByteArrayOutputStream();
ImageOutputStream?imageOut?=?ImageIO.createImageOutputStream(output);
ImageIO.write(image?“JPEG“?imageOut);
imageOut.close();
ByteArrayInputStream?input?=?new?ByteArrayInputStream(output.toByteArray());
output.close();
return?input;
}
@Override
public?String?execute()?throws?Exception?{
setInputStream(createInuptStream());
return?SUCCESS;
}
public?ByteArrayInputStream?getInputStream()?{
return?inputStream;
}
public?void?setInputStream(ByteArrayInputStream?inputStream)?{
this.inputStream?=?inputStream;
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-23?09:50??Struts2login\
?????文件????????1006??2012-11-23?09:50??Struts2login\.classpath
?????目錄???????????0??2012-11-23?09:50??Struts2login\.myeclipse\
?????文件?????????309??2012-11-23?09:50??Struts2login\.myme
?????文件????????1285??2012-11-23?09:50??Struts2login\.project
?????目錄???????????0??2012-11-23?09:50??Struts2login\SQL\
?????文件?????????923??2012-11-23?09:50??Struts2login\SQL\struts?2login.sql
?????目錄???????????0??2012-11-23?09:50??Struts2login\src\
?????目錄???????????0??2012-11-23?09:50??Struts2login\src\action\
?????文件????????2900??2012-11-23?09:50??Struts2login\src\action\ImageAction.java
?????文件?????????639??2012-11-23?09:50??Struts2login\src\action\LoginAction-validation.xm
?????文件????????1100??2012-11-23?09:50??Struts2login\src\action\LoginAction.java
?????文件????????1739??2012-11-23?09:50??Struts2login\src\action\RegisterAction-validation.xm
?????文件????????2032??2012-11-23?09:50??Struts2login\src\action\RegisterAction.java
?????目錄???????????0??2012-11-23?09:50??Struts2login\src\biz\
?????文件?????????758??2012-11-23?09:50??Struts2login\src\biz\Users.java
?????目錄???????????0??2012-11-23?09:50??Struts2login\src\dao\
?????文件????????1134??2012-11-23?09:50??Struts2login\src\dao\DbConnection.java
?????文件????????2218??2012-11-23?09:50??Struts2login\src\dao\DbService.java
?????文件?????????958??2012-11-23?09:50??Struts2login\src\struts.xm
?????目錄???????????0??2012-11-23?09:50??Struts2login\WebRoot\
?????文件?????????837??2012-11-23?09:50??Struts2login\WebRoot\index.jsp
?????文件?????????778??2012-11-23?09:50??Struts2login\WebRoot\login.jsp
?????文件?????????416??2012-11-23?09:50??Struts2login\WebRoot\login_success.jsp
?????目錄???????????0??2012-11-23?09:50??Struts2login\WebRoot\me
?????文件??????????36??2012-11-23?09:50??Struts2login\WebRoot\me
?????文件????????2444??2012-11-23?09:50??Struts2login\WebRoot\register.jsp
?????文件????????1178??2012-11-23?09:50??Struts2login\WebRoot\register_success.jsp
?????目錄???????????0??2012-11-23?09:50??Struts2login\WebRoot\WEB-INF\
?????目錄???????????0??2012-11-23?09:50??Struts2login\WebRoot\WEB-INF\classes\
?????目錄???????????0??2012-11-23?09:50??Struts2login\WebRoot\WEB-INF\classes\action\
............此處省略20個文件信息
評論
共有 條評論