被遗忘的角落!!

   2011 新的开始!!!


« 上一篇: java excel报表导出 下一篇: java 通用的万能类 »
helin @ 2010-12-27 13:26

 import java.awt.Color;
import java.awt.Font;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;

import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

 

public class imageservlet extends HttpServlet {

 /**
  * 定义字符串
  */
 public static final char[] CHARS = { '2', '3', '4', '5', '6', '7', '8',
   '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
   'M', 'N', 'P', 'Q', 'R', 'S', 'U', 'V', 'W', 'X', 'Y', 'Z' };
 //定义随机函数
 public static Random random=new Random();
 
 /**
  * 生成随机字符串
  */
    public static String getString(){
     StringBuffer buffer=new StringBuffer();
     for(int i=0;i<6;i++){
      buffer.append(CHARS[random.nextInt(CHARS.length)]);
      
     }
     return buffer.toString();     
    }
    //设置背景色
    public static Color getrandowColor(){
     return new Color(random.nextInt(255),random.nextInt(255),random.nextInt(255));
    }
    //设置前景色
    public static Color getreverseColor(Color c){
     return new Color(255-c.getRed(),255-c.getGreen(),255-c.getBlue());
    }
 /**
  * Constructor of the object.
  */
 public imageservlet() {
  super();
 }

 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 /**
  * The doGet method of the servlet. <br>
  * 
  * This method is called when a form has its tag value method equals to get.
  * 
  * @param request
  *            the request send by the client to the server
  * @param response
  *            the response send by the server to the client
  * @throws ServletException
  *             if an error occurred
  * @throws IOException
  *             if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("image/jpeg");
  String randomstrString=getString();
  request.getSession(true).setAttribute("randomstring",randomstrString);
  int width=100;
  int height=30;
  //新建颜色对象用于背景
  Color color=getrandowColor();
  //新建颜色对象用于前景
  Color reverse=getreverseColor(color);
  //新建图片对象
  BufferedImage bi=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
  Graphics2D g=bi.createGraphics();
     //设置字体
  g.setFont(new Font("仿宋体",Font.BOLD,16));
  //设置背景
  g.setColor(color);
  //填充背景色
  g.fillRect(0, 0, width, height);
  //设置前景
  g.setColor(reverse);
  //
  g.drawString(randomstrString, 18, 20);
  
  for(int i=0,n=random.nextInt(100);i<n;i++){
   ////画点
   g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);
   //画线
   //g.drawLine(random.nextInt(width), random.nextInt(height), random.nextInt(width),random.nextInt(width));
   
  }
  //新建输出对象
  ServletOutputStream out=response.getOutputStream();
  //对像装载
  JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
  //把做好的图片装入对象
  encoder.encode(bi);    
  out.flush();
  
  
 }

 /**
  * Initialization of the servlet. <br>
  * 
  * @throws ServletException
  *             if an error occurs
  */
 public void init() throws ServletException {
  // Put your code here
 }

}

 

 

 

//以上导出是一个图片,只在用的地方把这个类作为图也的地址来用就ok了。。




评论 / 个人网页 / 扔小纸条
*昵称

已经注册过? 请登录

Email
网址
*评论
 


 
网志分类
· 所有网志 (19) · 心情日记 (0) · 生活小菜 (0) · 校园生活 (0) · 学习的积蓄 (10) · 杂货铺 (0) · 未分类 (9) ·
站内搜索
友情链接
· 我的歪酷 · 心情日记 · 北大许志远 · 编程论坛 · 守候***风雨兼程 · 流沙的世界 · 小丫头的地址

订阅 RSS

0006634

歪酷博客