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日