package cn.itcast.response;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
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 ResponseDemo5 extends HttpServlet {
private int WIDTH = 120;
private int HEIGHT = 25;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BufferedImage image = new BufferedImage(WIDTH , HEIGHT , BufferedImage.TYPE_INT_RGB);
Graphics graphics = image.getGraphics();
//设置背景色
setBackgroundColor(graphics);
//设置边框
setBorder(graphics);
//绘制随机线
drawRandomLine(graphics);
//绘制随机数字
drawRandomNum(graphics);
response.setContentType("image/jpeg");
ImageIO.write(image, "jpg", response.getOutputStream());
}
private void drawRandomNum(Graphics graphics) {
// TODO Auto-generated method stub
graphics.setColor(Color.RED);
graphics.setFont(new Font("楷体", Font.BOLD, 20));
String base="u96d5u864eu7684u4e00u4e86u662fu6211u4e0du5728u4ebau4eecu6709u6765u4ed6u8fd9u4e0au7740u4e2au5730u5230u5927u91ccu8bf4u5c31u53bbu5b50" +
"u5f97u4e5fu548cu90a3u8981u4e0bu770bu5929u65f6u8fc7u51fau5c0fu4e48u8d77u4f60u90fdu628au597du8fd8u591au6ca1u4e3au53c8u53efu5bb6u5b66u53ea" +
"u4ee5u4e3bu4f1au6837u5e74u60f3u751fu540cu8001u4e2du5341u4eceu81eau9762u524du5934u9053u5b83u540eu7136u8d70u5f88u50cfu89c1u4e24u7528u5979" +
"u56fdu52a8u8fdbu6210u56deu4ec0u8fb9u4f5cu5bf9u5f00u800cu5df1u4e9bu73b0u5c71u6c11u5019u7ecfu53d1u5de5u5411u4e8bu547du7ed9u957fu6c34u51e0" +
"u4e49u4e09u58f0u4e8eu9ad8u624bu77e5u7406u773cu5fd7u70b9u5fc3u6218u4e8cu95eeu4f46u8eabu65b9u5b9eu5403u505au53eb";
int x = 10;
for(int i = 0; i < 4; i++)
{
String str = base.charAt(new Random().nextInt(base.length())) + "";
graphics.drawString(str, x, 21);
x += 28;
}
}
private void drawRandomLine(Graphics graphics) {
// TODO Auto-generated method stub
graphics.setColor(Color.GREEN);
for(int i = 0; i < 5; i++)
{
int x1 = new Random().nextInt(WIDTH);
int y1 = new Random().nextInt(HEIGHT);
int x2 = new Random().nextInt(WIDTH);
int y2 = new Random().nextInt(HEIGHT);
graphics.setColor(Color.GREEN);
graphics.drawLine(x1, y1, x2, y2);
}
}
private void setBorder(Graphics graphics) {
// TODO Auto-generated method stub
graphics.setColor(Color.BLACK);
graphics.drawRect(0, 0, WIDTH, HEIGHT);
}
private void setBackgroundColor(Graphics graphics) {
// TODO Auto-generated method stub
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, WIDTH - 1, HEIGHT - 1);
}
}