您的位置:首页 > 其它

response输出随机图片

2015-07-05 09:44 423 查看
package response;

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.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * Servlet implementation class Demo1

 */

@WebServlet("/Demo1")

public class Demo1 extends HttpServlet {

 private static final long serialVersionUID = 1L;

 public static final int WIDTH=120;

 public static final int HEIGHT=35;

      

    /**

     * @see HttpServlet#HttpServlet()

     */

    public Demo1() {

        super();

        // TODO Auto-generated constructor stub

    }

 /**

  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

  */

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  BufferedImage image=new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);

  Graphics g=image.getGraphics();

  //设置背景色

  setBackGround(g);

  //设置边框

  setBorder(g);

  //画干扰线

  drawRandomLine(g);

  //写随机数

  drawRandomNum((Graphics2D)g);

  //图形写给浏览器

  response.setContentType("image/jpeg");

  //发头控制浏览器不要缓存

  response.setDateHeader("expire", -1);

  response.setHeader("Cache-Control", "no-cache");

  response.setHeader("pragma", "no-cache");

  ImageIO.write(image, "jpg", response.getOutputStream());

  

  

  

 }

 private void drawRandomNum(Graphics2D g) {

  g.setColor(Color.RED);

  g.setFont(new Font("宋体",Font.BOLD,20));

  String str;

  int x=10;

  for(int i=0;i<4;i++){

   str=new Random().nextInt(10)+"";

   int degree=new Random().nextInt()%30;

   g.rotate(degree*Math.PI/180,x,20);

   g.drawString(str, x, 20);

   g.rotate(-degree*Math.PI/180,x,20);

   x+=30;

  }

  

 }

 private void drawRandomLine(Graphics g) {

  g.setColor(Color.GREEN);

  for(int i=0;i<4;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);

  g.drawLine(x1, y1, x2, y2);

  }

 }

 private void setBorder(Graphics g) {

  g.setColor(Color.BLUE);

  g.drawRect(1, 1, WIDTH-2, HEIGHT-2);

  

 }

 private void setBackGround(Graphics g) {

  g.setColor(Color.WHITE);

  g.fillRect(0, 0, WIDTH, HEIGHT);

  

  

 }

 /**

  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

  */

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  // TODO Auto-generated method stub

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: