首页>代码>java jsp多用户博客系统源代码下载>/BLOG系统/Blog/src/com/wt/blog/MakeCertPic.java
package com.wt.blog;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;

/**
 * 生成验证码
 * @author dell
 *
 */
public class MakeCertPic {
	private char mapTable[]={
			'a','b','c','d','e','f',
			'g','h','i','j','k',
			'm','n','p','q','r',
			's','t','u','v','w','x',
			'y','z','0','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);
		//随机产生20个干扰点
		Random rand = new Random();
		for(int i=0;i<20;i++){
			int x= rand.nextInt(width);
			int y=rand.nextInt(height);
			g.drawOval(x, y, 1, 1);
		}
		//释放图形
		g.dispose();
		try {
			//输出图像到页面
			ImageIO.write(image,"JPEG",os);
		} catch (IOException e) {
			return "";
		}
		return strEnsure;
	}
}
最近下载更多
SQ2930501923  LV14 2022年10月1日
liu2022  LV14 2022年7月31日
爱写代码  LV12 2022年4月5日
 LV10 2021年6月12日
云生123456  LV6 2021年6月8日
一瓶纯牛奶  LV3 2021年5月22日
iverysad  LV1 2021年4月25日
jay1992  LV14 2021年1月2日
1043771029  LV1 2020年11月13日
15687890811  LV12 2020年11月10日
最近浏览更多
wttttts  LV2 1月1日
asddwh  LV12 2023年12月29日
2036495585  LV9 2023年10月6日
三十一  LV2 2023年6月28日
wanglongfei2  LV2 2023年6月15日
刘先生-OL  LV13 2023年3月9日
yubuzhuo  LV2 2023年2月27日
小赤0120  LV4 2022年12月20日
你们的代码都是我的了  LV16 2022年12月5日
y1214435276  LV9 2022年11月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友