怎么给验证码添加背景图片

2022-05-16 22:49:16   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《怎么给验证码添加背景图片》,欢迎阅读!
背景图片,验证,添加,怎么
怎么给验证码添加背景图片

如何给验证码添加背景图片

有一段生成验证码的程序,想在背景上加上一副静态的图片,不知道该用什么方法。请各位大侠指教!一下是生成验证码的程序:

<%@ page contentType= "image/jpeg " import= "java.awt.*, java.awt.image.*,java.util.*,javax.imageio.* " %> <%!

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()); %>


本文来源:https://www.wddqxz.cn/94a0d0b289eb172ded63b7fa.html

相关推荐