JAvaピクチャ検証コード



	 
//	//              ,       
//	private char mapTable[]={
//			'a','b','c','d','e','h',
//			'A','B','C','D','E','F',
//			'j','k','m','n','p','q',
//			'J','K','M','N','P','Q',
//			'r','s','t','u','v','w',
//			'R','S','T','U','V','W',
//			'x','y','z','X','Y','Z',
//			'2','3','4','5','6','7',
//			'8','9'
//	};
//	
//	public String getCertPic(int width, int height,OutputStream os) {
//		if(width<=0) {
//			width=60;
//		}
//		if(height<=0) {
//			height=20;
//		}
//		
//		BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
//		//       
//		Graphics g = image.getGraphics();
//		//      
//		g.setColor(new Color(0xDCDCDC));
//		g.fillRect(0, 0, width, height);
//		//   
//		g.setColor(Color.black);
//		g.drawRect(0, 0, width-1, height-1);
//		//        
//		String strEnsure="";
//		//4  4    ,             ,     
//		
//		for(int i=0; i<4; i++) {
//			strEnsure += mapTable[(int)(mapTable.length*Math.random())];
//		}
//		//          ,            ,  drawString  
//		g.setColor(Color.black);
//		g.setFont(new Font("Atlantic Inline", Font.PLAIN,18));
//		String str = strEnsure.substring(0, 1);
//		g.drawString(str, 8, 17);
//		 str = strEnsure.substring(1, 2);
//		 g.drawString(str, 20, 15);
//		 str = strEnsure.substring(2, 3);
//		 g.drawString(str, 35, 18);
//		 str = strEnsure.substring(3, 4);
//		 g.drawString(str, 45, 15);
//		 //    10    
//		 
//		 Random random = new Random();
//		 for(int i=0; i<10; i++ ) {
//			 int x = random.nextInt(width);
//			 int y = random.nextInt(height);
//			 g.drawOval(x, y, 1, 1);
//		 }
//		//       
//		 g.dispose();
		 
		 
		 
		 
		 
		 
	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 String getCertPic(OutputStream os) {

		//         
		int width = 60, height = 20;
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
	
		//        
		Graphics g = image.getGraphics();
	
		//     
		Random random = new Random();
	
		//      
		g.setColor(this.getRandColor(200,250));
		g.fillRect(0, 0, width, height);
	
		//    
		g.setFont(new Font("Times New Roman",Font.PLAIN,18));
	
		//   
		//g.setColor(new Color());
		//g.drawRect(0,0,width-1,height-1);
	
	
		//     155    ,                  
		g.setColor(getRandColor(160,200));
		for (int i=0;i<155;i++)
		{
			int x = random.nextInt(width);
			int y = random.nextInt(height);
	        int xl = random.nextInt(12);
	        int yl = random.nextInt(12);
	        g.drawLine(x,y,x+xl,y+yl);
		}
	
		//          (4   )
		String sRand="";
		for (int i=0;i<4;i++){
			String rand=String.valueOf(random.nextInt(10));
			sRand+=rand;
			//           
			g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//           ,          ,        
			g.drawString(rand,13*i+6,16);
		}
	
	
	
		//     
		g.dispose();
	
		 try{
			 //       
			 ImageIO.write(image, "JPEG", os);
		 }catch(IOException e) {
			 return "";
		 }
		return sRand;
	}
	
	
	
	/**
	 * 
	 
	public String getCertPic() {
		
	
	
	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);
	}
	
	
	//       
	response.setHeader("Pragma","No-cache");
	response.setHeader("Cache-Control","no-cache");
	response.setDateHeader("Expires", 0);

	//         
	int width=60, height=20;
	BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

	//        
	Graphics g = image.getGraphics();

	//     
	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(new Color());
	//g.drawRect(0,0,width-1,height-1);


	//     155    ,                  
	g.setColor(getRandColor(160,200));
	for (int i=0;i<155;i++)
	{
	 int x = random.nextInt(width);
	 int y = random.nextInt(height);
	        int xl = random.nextInt(12);
	        int yl = random.nextInt(12);
	 g.drawLine(x,y,x+xl,y+yl);
	}

	//          (4   )
	String sRand="";
	for (int i=0;i<4;i++){
	    String rand=String.valueOf(random.nextInt(10));
	    sRand+=rand;
	    //           
	    g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//           ,          ,        
	    g.drawString(rand,13*i+6,16);
	}

	//       SESSION
	session.setAttribute("rand",sRand);


	//     
	g.dispose();

	//        
	ImageIO.write(image, "JPEG", response.getOutputStream());


	}
	*/