canvas画验证码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#canvas{
border: 1px solid red;
}
</style>
</head>
<body>
<canvas id="canvas" width="100" height="40">您的浏览器不支持canvas</canvas>
</body>
<script>
var canvas = document.getElementById("canvas");
var arr = [];
context = canvas.getContext("2d");
//随机字符 透明度 大小 位置随机
//随机背景颜色 取浅色 200 - 250
//干扰项 : 10个左右的随机(半径 位置)干扰圆
//10 个左右随机(长度随机,位置随机,大部分在画布上)的干扰线
var strStare = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//随机的函数
function randNumber(min,max){
return parseInt((max-min)Math.random()) + min;
}
//随机颜色
// canvas.style.background = rgb(${randNumber(200,255)},${randNumber(200,255)},${randNumber(200,255)});
// var color = rgb(${randNumber(200,255)},${randNumber(200,255)},${randNumber(200,255)});
//
context.beginPath();
context.fillStyle = rgb(${randNumber(200,255)},${randNumber(200,255)},${randNumber(200,255)});
context.fillRect(0,0,canvas.width,canvas.height);
for(var i=1;i<=5;i++){
var str = strStare[randNumber(0,strStare.length)];
arr.push(str);
context.textBaseline = "middle";
context.textAlign = "center";
context.fillStyle = rgb(${randNumber(0,200)},${randNumber(0,200)},${randNumber(0,200)});
context.font = "bold "+randNumber(15,25)+"px Arial"; // 设置字的大小必须给字体
context.fillText(str,i
20-10,randNumber(10,30));
}
for(var i=0;i<3;i++){
context.beginPath();
context.lineWidth = .5;
context.moveTo(randNumber(0,canvas.width),randNumber(0,canvas.height));
context.lineTo(randNumber(0,canvas.width),randNumber(0,canvas.height));
context.stroke();
context.beginPath();
context.arc(randNumber(1,100),randNumber(1,10),randNumber(canvas.width,canvas.height),Math.PI*2,0)
context.stroke();
}
console.log(arr);
</script>
</html>

最终效果


屏幕快照 2017-12-25 下午10.09.31.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、图形的组合方式 globalAlpha是一个介于0和1之间的值(包括0和1),用于指定所有绘制的透明度。默认值...
    空谷悠阅读 1,324评论 0 0
  • 画同心圆的方法! var canvas = document.getElementById("myCanvas")...
    久久归移阅读 1,469评论 0 0
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,719评论 2 32
  • 0x001 Canvas是啥? 说白了Canvas就是一块画布,可以使用js当画笔在上面绘画的画布,可以显示在网页...
    卖梳子的鲤鱼阅读 1,895评论 1 21
  • 《人民的名义》是一部悲剧,里面的每个人没有一个是赢家。 小时候一看电影,立马就会问,谁是好人,谁是坏人?长大后,才...
    琴无弦_7722阅读 162评论 0 0