yanzhengma.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.io.FileInputStream" %>
<%@ page import="java.awt.Color" %>
<%@ page import="java.awt.Font" %>
<%@ page import="java.awt.Graphics" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="java.io.IOException" %>
<%@ page import="java.util.Random" %>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServlet" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.util.Random" %>
<%
int width = 66;//图片宽
int height = 22;//图片高
int lineSize = 0;//干扰线数量
int stringNum = 4;//随机产生字符数量
BufferedImage img = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
// 得到该图片的绘图对象
Graphics g = img.getGraphics();
Random r = new Random();
Color c = new Color(200, 200, 200);
g.setColor(c);
// 填充整个图片的颜色
g.fillRect(0, 0, width, height);
// 向图片中输出数字和字母
StringBuffer sb = new StringBuffer();
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
int index, len = ch.length;
for (int i = 0; i < stringNum; i++) {
index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
// 输出的 字体和大小
g.setFont(new Font("Arial", Font.ITALIC, 18));
//绘制干扰线
for(int a=0;a<lineSize;a++){
int x = r.nextInt(width);
int y = r.nextInt(height);
int xl = r.nextInt(13);
int yl = r.nextInt(15);
g.drawLine(x, y, x+xl, y+yl);
}
//写什么数字,在图片 的什么位置画
g.drawString("" + ch[index], (i * 15) + 3, 18);
sb.append(ch[index]);
}
OutputStream os=response.getOutputStream();
out.println(ImageIO.write(img, "JPEG", os));
os.close();
os.flush();
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
System.out.println(sb.toString());
request.getSession().setAttribute("piccode", sb.toString());
%>
html代码
<img src="yanzhengma.jsp" />
复制就直接可以用了,剩下的自由发挥。
文章版权归haiqiancun.com所有