⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verifycode.java

📁 这是我做的一个Struts+Hibernate+Spring整合的例子 和大家分享一下
💻 JAVA
字号:

/***************************************************
 *  
 *  Դ�ļ���:  VerifyCode.java
 *  ��    �ܣ� ����ϵͳ��֤�� - ��֤��
 * ****************************************************/


package com.thinkingfly.yz.util;			//ָ�������ڵİ�
import java.awt.*;				//������
import java.awt.image.*;
import java.util.*;
import javax.imageio.*;

//������

public class VerifyCode {
	static Random r = new Random();
	static String ssource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  + "abcdefghijklmnopqrstuvwxyz" + "0123456789";
	static char[] src = ssource.toCharArray();
	
	
	//��������ַ�
	
	private static String randString (int length){
		char[] buf = new char[length];
		int rnd;
		for(int i=0;i<length;i++){
			rnd = Math.abs(r.nextInt()) % src.length;
			
			buf[i] = src[rnd];
		}
		return new String(buf);
	}
	
	//���ø÷�������������ַ�,
	//����i: Ϊ�ַ�ij���
	public String runVerifyCode(int i){
		String VerifyCode = randString(i);
		return VerifyCode;
	}
	
	
	//��Χ��������ɫ
	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);
   	}
  
  	//���ø÷������õ�����֤�����ͼ��
  	//sCode:������֤�� w:ͼ���� h:ͼ��߶�
  	public BufferedImage CreateImage(String sCode)
  	{
	  	try{	
	  		//�ַ������
			Font CodeFont = new Font("Arial Black",Font.PLAIN,16);
			int iLength = sCode.length();					//�õ���֤�볤��
			int width=22*iLength, height=20;				//ͼ������߶�
			int CharWidth = (int)(width-24)/iLength;		//�ַ����߿��
			int CharHeight = 16;    						//�ַ���ϱ߸߶�
			
			// ���ڴ��д���ͼ��
			BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
			
			// ��ȡͼ��������
			Graphics g = image.getGraphics();
			
			//��������
			Random random = new Random();
			
			// �趨����ɫ
			g.setColor(getRandColor(200,240));
			g.fillRect(0, 0, width, height);
			
			//�趨����
			g.setFont(CodeFont);
			
			//�������ɫ�ı߿�
			g.setColor(getRandColor(10,50));
			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);
			}
			
	
			for (int i=0;i<iLength;i++)
			{
				String rand = sCode.substring(i,i+1); 
				// ����֤����ʾ��ͼ����
				g.setColor(new Color(20+random.nextInt(60),20+random.nextInt(120),20+random.nextInt(180)));
				g.drawString(rand,CharWidth*i+14,CharHeight);
			}
			// ͼ����Ч
			g.dispose();
			return image;
		}catch(Exception e){
			//e.printStackTrace();	
			//System.out.println(e.getMessage());
			}
		return null;
	}
	
	//����
	public static void main(String[] args){	
			//VerifyCode vc = new VerifyCode();
			//String s1 = vc.runVerifyCode(4);
			//Fun.DreamNewsTitle;System.out.println(s1);	
			//Image im = vc.CreateImage(s1);
			//Graphics g = im.getGraphics();
			//g.drawImage(im,20,20,this);
			//g.drawString(s1,20,20);
			
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -