jsp快到截止日期字体颜色变色_JSP验证码实现随机背景色及字体颜色,带扰乱线条效果源代码...

1packagecom;23importjava.awt.Color;4importjava.awt.Font;5importjava.awt.Graphics;6importjava.awt.Image;7importjava.awt.image.BufferedImage;8importjava.util.Random;910importjavax.servlet.http.HttpServletRequest;11importjavax.servlet.http.HttpServletResponse;12importjavax.servlet.http.HttpSession;1314publicclassCreatImage{1516privatestaticfinallongserialVersionUID=1L;17Image image=null;18HttpServletRequest request=null;19HttpServletResponse response=null;2021publicCreatImage(HttpServletRequest request, HttpServletResponse response){22this.request=request;23this.response=response;24}2526publicColor getRandColor(intfc,intbc){//给定范围获得随机颜色27Random random=newRandom();28if(fc>255) fc=255;29if(bc>255) bc=255;30intr=fc random.nextInt(bc-fc);31intg=fc random.nextInt(bc-fc);32intb=fc random.nextInt(bc-fc);33returnnewColor(r,g,b);34}3536publicBufferedImage creatImage(){37intwidth=100, height=26;38//生成随机类39Random random=newRandom();40BufferedImage image=newBufferedImage(width, height, BufferedImage.TYPE_INT_RGB);41//获取图形上下文42Graphics g=image.getGraphics();43//设定背景色44g.setColor(getRandColor(200,250));45g.fillRect(0,0, width, height);46//设定字体47g.setFont(newFont("Times New Roman",Font.PLAIN,22));4849//画边框50//g.setColor(getRandColor(200,250));51//g.drawRect(0,0,width,height);5253//随机产生155条干扰线,使图象中的认证码不易被其它程序探测到54g.setColor(getRandColor(160,200));55for(inti=0;i<155;i ){56intx=random.nextInt(width);57inty=random.nextInt(height);58intxl=random.nextInt(12);59intyl=random.nextInt(12);60g.drawLine(x,y,x xl,y yl);61}62//取随机产生的认证码(4位数字)63//String rand = request.getParameter("rand");64//rand = rand.substring(0,rand.indexOf("."));65String str1=randomStr(4);//得到随机字符66HttpSession session=request.getSession();67session.setAttribute("validatenumber",str1);68//System.out.println(str1);69for(inti=0;i<4;i ){70String rand=str1.substring(i,i1);71//将认证码显示到图象中72g.setColor(newColor(20random.nextInt(110),20random.nextInt(110),20random.nextInt(110)));73//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成74g.drawString(rand,20*i12,20);75}76//图象生效77g.dispose();78returnimage;79}8081//得到随机字符82publicString randomStr(intn) {83String str1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";84String str2="";85intlen=str1.length()-1;86doubler;87for(inti=0; i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值