www.pudn.com > MyFirst.rar > ValidImageAction.java


package lee; 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import java.util.LinkedList; 
import java.util.Random; 
import javax.imageio.ImageIO; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
 
import com.sun.image.codec.jpeg.JPEGCodec; 
import com.sun.image.codec.jpeg.JPEGImageEncoder; 
 
public class ValidImageAction { 
	public String sRand="";      
	public ValidImageAction(){  
	}      
	public Color getRandColor(int fc,int bc){     
		Random random = new Random(); 
		if(fc>255) fc=255; 
		if(bc>255) bc=255; 
		int r=fc+random.nextInt(bc-fc);      
		int g=fc+random.nextInt(bc-fc);      
		int b=fc+random.nextInt(bc-fc);      
		return new Color(r,g,b);      
	}     
	public void creatImage(String fileName,String content){   
		int width=60, height=20;      
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);     
		Graphics2D g = image.createGraphics();         
		Random random = new Random();  
		g.setColor(getRandColor(200,250));      
		g.fillRect(0, 0, width, height);  
		g.setFont(new Font("Times New Roman",Font.PLAIN,18));      
		g.setColor(Color.black);    
		g.drawString(content,10,15);      
		g.dispose();      
		try{ 
			File f=new File(fileName);      
			if(!f.exists()){      
				f.createNewFile();      
			}else{ 
				Thread.sleep(200);      
				f.delete();      
				f.createNewFile();      
			}      
			ImageIO.write(image, "jpg", f);      
		}catch(Exception e){      
			e.printStackTrace();      
		}      
	} 
	public void response(HttpServletResponse response,BufferedImage img){      
		try{      
			response.setContentType("image/jpg;charset=GB2312");   
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());      
			encoder.encode(img);   
		}catch(Exception e){      
			e.printStackTrace();      
		}      
	}   
	public String getContent() throws InterruptedException{      
		String content="";      
		for(int i=0;i<4;i++){      
			content+=getChar();      
			Thread.sleep(new Random().nextInt(10)+10); 
		} 
		System.out.println("ÑéÖ¤ÂëÊÇ£º"+content); 
		return content;   
	} 
	public char getChar(){   
		Random random=new Random();   
		char ch='0'; 
		LinkedList ls=new LinkedList();   
		for(int i=0;i<10;i++){ 
			ls.add(String.valueOf(48+i));   
		} 
		for(int i=0;i<26;i++){ 
			ls.add(String.valueOf(65+i)); 
		} 
		for(int i=0;i<26;i++){ 
			ls.add(String.valueOf(97+i)); 
		}   
		int index=random.nextInt(ls.size());   
		if(index>(ls.size()-1)){  
			index=ls.size()-1;  
		} 
		ch=(char)Integer.parseInt(String.valueOf(ls.get(index)));   
		return ch;   
	} 
//	public   static   void   main(String   []args)   throws   Exception{   
//	ValidImageAction   c=new   ValidImageAction();   
//	c.creatImage("me.jpg",c.getContent());   
//	}   
}