<%@ page pageEncoding="utf-8"%>

<h3>yanzheng.jsp</h3>

<script>
function changeCode(m){
m.src = "validatecode.jsp?a="+new Date().getTime();
}
</script>

<input/>
<img onclick="changeCode(this)" src="validatecode.jsp"/>

 

---------------------------------------------------------------------------------------------------


<%@page import="java.awt.Graphics2D"%>
<%@page import="java.awt.Font"%>
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Graphics"%>
<%@page import="com.sun.image.codec.jpeg.JPEGCodec"%>
<%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%>
<%@page import="java.io.OutputStream"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@ page pageEncoding="utf-8"%>

<%
//设置响应头,告诉浏览器,服务器发的是图片格式
response.setContentType("image/jpeg");

//让内置对象out失效
out.clearBuffer();
out = pageContext.pushBody();

//制作一张图
BufferedImage bi = new BufferedImage(200,100,BufferedImage.TYPE_INT_RGB);

//涂鸦
Graphics2D g = (Graphics2D)bi.getGraphics();

//设置字体样式
g.setFont(new Font("宋体",Font.BOLD,30));

//换背景色
g.setColor(Color.pink);
g.fillRect(0, 0, bi.getWidth(), bi.getHeight());

//生成4个随机字母
String ch = "abcdefABCDEF0123456789";
for(int i=0 ; i<4 ;i++){
int n = (int)(Math.random()*ch.length());

int r1 = (int)(Math.random()*(256));
int g1 = (int)(Math.random()*(256));
int b1 = (int)(Math.random()*(256));

char c = ch.charAt(n);
g.setColor(new Color(r1,g1,b1));

double deg = (int)(Math.random()*(61))-30;
g.rotate(Math.PI/180*deg, 19+20*i,50);
g.drawString(c+"",19+20*i,50);
g.rotate(-Math.PI/180*deg, 19+20*i,50);
}

//生成随机点
for(int i=0 ; i<501 ;i++){
g.setColor(Color.BLACK);
int x1 = (int)(Math.random()*bi.getWidth());
int y1 = (int)(Math.random()*bi.getHeight());
g.drawLine(x1, y1, x1, y1);
}

/* 练习画笔
g.drawString("gggggg", 110, 110);
g.drawLine(1,1,100,100);
g.drawOval(55,55,90,80);
g.drawRect(22,22,34,34);
g.fillRect(11,11,20,29);

g.setColor(new Color(255,255,0));
g.fillRect(111,111,20,29);

g.setColor(new Color(0,255,0));
g.fillRect(111,111,20,29);
*/



//向客户端发送图片
OutputStream os = response.getOutputStream();
JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
en.encode(bi);

%>