canvas绘制随机验证码

HTML标签部分

<canvas id="code" width="100" height="50" style="border: 1px solid #ccc"></canvas>

宽为100 高为50 边框为颜色为#ccc的1px的实线

画布获取

        var canvas= document.getElementById("code");//获取画布
        var canvasW=canvas.width; //获取画布宽
        var canvasH=canvas.height; // 获取画布高

封装0~最大值的随机数的函数

        var getRandom=function (maxNum) {   
        return Math.floor(Math.random()*maxNum); //封装0~最大值的随机数的函数
        }

封装随机颜色函数

r,g,b都为0~255的随机颜色

        var getColor=function () {
        var r=getRandom(256), //因为随机只能取到最大值的前一位
        g=getRandom(256),
        b=getRandom(256);
            return "rgb("+ r +","+g +"," + b + ")" 
        }

绘制随机线

        var ctx=canvas.getContext("2d"); //创建获取执行期上下文
       for (var i=0;i<lineNum;i++){ //创建循环生成随机颜色的线
        ctx.beginPath(); //开始绘画
        ctx.moveTo(getRandom(canvasW),getRandom(canvasH));  //绘画随机开始绘画点
        ctx.lineTo(getRandom(canvasW),getRandom(canvasH));  //绘画随机结束点生成线
        ctx.strokeStyle=getColor(); //给线添加随机颜色
        ctx.closePath(); //结束绘画
        ctx.stroke(); //绘画
        }

绘制随机点

 		var lineNum=5,arcNum=100;   //干扰点和干扰杂色点
         for (var i=0;i<arcNum;i++){ //创建循环生成随机颜色的点
        ctx.beginPath(); //开始绘画
        ctx.arc(getRandom(canvasW),getRandom(canvasH),1,0,2*Math.PI); // 生成圆心位置随机的半径为1从0度开始绘画的圆
        ctx.fillStyle=getColor();//给点填充随机颜色
        ctx.closePath();//结束绘画
        ctx.fill(); //填充
        

绘制随机文本

在这里插入代码片

成果展示

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值