Java Web 生成图片验证码

首先创建验证码所需要的图片。先声明图片的宽高参数,然后再声明一个类型为预定义图像类型之一
BufferedImage,并设定所创建图像的宽高和类型。接着通过getGraphics()方法获取Graphics2D,用于绘
制图像,接着通过setColor()方法设置图片颜色,最后通过fillRect()方法填充指定矩形,绘制图片颜色。
Java Web 生成图片验证码_第1张图片
然后在图片中添加由随机字母和数字组成的验证码。首先声明一个Random类对象用于生成随机数,一个String变量用于接收每次生成的字符,以及一个StringBuffer对象用于存放所有字符组成的验证码。然后通过获取Random对象的下一个小于2的正随机整数来判断图片中需要添加的字符内容,如果获取到的值为0就生成字母,如果为1就生成数字。在需要生成的字符内容为字母时同样使用以上方法再对字母的大小写进行判断,声明一个int变量,如果获取到的值为0就将变量赋值为65(65到之后25位为大写字母),如果为1就赋值为97(97到之后25位为小写字母)。然后将变量与一个小于26的随机正整数相加,将其和转换为char类型生成字母,再赋值给声明的String变量。如果判断为需要生成数字可以直接将一个小于10的随机正整数赋值给String变量。然后使用setColor()方法指定图形当前颜色,接着通过drawString()方法将生成的字符添加进图片并设置随机坐标,然后通过setFont()方法设置图片当前字体样式,然后将生成的字符添加进StringBuffer对象中,最后根据需要对字符进行多次循环添加。
Java Web 生成图片验证码_第2张图片
接着在图片中添加干扰线。首先设置干扰线第一个点的随机坐标x1,y1以及第二个点的随机坐标x2,y2,然后使用setColor()方法指定图形当前颜色,接着通过drawLine()方法在图形的坐标系中使用当前颜色在点(x1,y1)和点(x2,y2)之间画线,然后根据需要对画线进行循环画出多条线。
Java Web 生成图片验证码_第3张图片
最后将之前保存的验证码内容通过request对象保存下来,以便之后进行验证。再将图片写入到response对象的输出流中,并设定包含格式非正式名称的String,将图片传递到页面上。
Java Web 生成图片验证码_第4张图片

你可能感兴趣的:(Java Web 生成图片验证码)