package cn.huaxin.proving;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
public final int WIDTH = 123;
public final int HEIGHT = 33;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
BufferedImage buff = new BufferedImage(WIDTH, HEIGHT,
BufferedImage.TYPE_INT_RGB);
//获取画笔
Graphics g = buff.getGraphics();
// 设置背景色
setBackground(g);
// 设置边框
setBorder(g);
// 画干扰线
setLine(g);
// 写随机中文
setRandom(g);
resp.setHeader("exprise","-1");
resp.setHeader("Cache-Control","no-cache");
resp.setHeader("Pragma","no-cache");
resp.setContentType("image/jpeg");
ImageIO.write(buff, "jpg", resp.getOutputStream());
}
private void setBackground(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, WIDTH, HEIGHT);
}
private void setBorder(Graphics g) {
g.setColor(Color.RED);
g.drawRect(0, 0, WIDTH - 1, HEIGHT - 1);
}
private void setLine(Graphics g) {
g.setColor(Color.GREEN);
for (int i = 0; i < 6; i++) {
int x1 = new Random().nextInt(WIDTH);
int x2 = new Random().nextInt(WIDTH);
int y1 = new Random().nextInt(HEIGHT);
int y2 = new Random().nextInt(HEIGHT);
g.drawLine(x1 + 3, y1, x2, y2);
}
}
private void setRandom(Graphics g) {
Graphics2D g1 = (Graphics2D)g;
String str="爱山街道咖啡机爱空间废卡都市狂佛打瞌睡得分卡看到司机咖啡机阿卡四大皆空爱神的箭开发技术大口井疯狂的是客服笕丁路口";
g1.setFont(new Font("宋体", 1, 20));
g1.setColor(Color.BLUE);
int x =5;
for(int i=0;i<4;i++){
int index = new Random().nextInt(str.length());
String str2 = str.charAt(index)+"";
int random = new Random().nextInt()%30;
//字的旋转
g1.rotate(random*Math.PI/180, x, 20);
g1.drawString(str2, x, 20);
g1.rotate(-random*Math.PI/180, x, 20);
x+=30;
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
}
}
简单的小案例怎么简单的生成验证码
最新推荐文章于 2024-07-24 17:27:32 发布