java生成简单的图片验证码

java生成简单的图形验证码大致分为五步:
第一步:获取画板并设置画板大小

int width=200;
int height=40;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//设置宽高以及画板类型

第二步:获取笔触,并填充画板

Graphics gs = image.getGraphics();//获取画笔
gs.setColor(Color.white);//设置画笔颜色
gs.fillRect(0,0,width,height);//填充矩形
gs.setFont(new Font("宋体",Font.BOLD+Font.ITALIC,30));//设置字体

第三步:利用Random生成验证码,并写在画板上

String words="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
Random random = new Random();
int length=4;//验证码长度
StringBuffer buffer = new StringBuffer();//用来接收产生的随机在字符
int words_length=words.length();
 for(int i=0;i<length;i++){
     gs.setColor(new Color(random.nextInt(256),random.nextInt(256),random.nextInt(256)));
     char c = words.charAt(random.nextInt(words_length));//获取随机字符
     gs.drawString(String.valueOf(c),60+(i*20),30);//字符在画板书写的位置
     buffer.append(c);
        }

第四步:在画板上画干扰元素

gs.setColor(Color.GRAY);//设置画笔颜色
for(int i=0;i<400;i++){
     gs.drawOval(random.nextInt(200),random.nextInt(40),1,1);//在画板随机位置生成干扰元素
 }

第五步:存到本地或者响应到客户端,响应到客户端需要有HttpServletResponse响应流对象,可通过形参进行传递

//保存到本地
File outputFile = new File("src/main/java/img/image.png");
ImageIO.write(image, "png", outputFile);
//相应到客户端
ServletOutputStream outputStream = response.getOutputStream();
ImageIO.write(image,"png",outputStream);

最后的执行效果是:
简单图形验证码

关于画笔的文档可以前往Graphics中文文档

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值