JavaScript使用canvas绘制随机验证码
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要为大家详细介绍了JavaScript使用canvas绘制随机验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了使用canvas绘制随机验证码的具体代码,供大家参考,具体内容如下
理论基础
掌握使用canvas绘制线条和圆形以及绘制文字
实现思路
先构建一个画布,设置一定的宽高(在canvas中设置宽高和在style中设置是有区别的,建议直接在canvas标签中设置),封装一个生成随机数的方法,为线条和圆形的绘制设置随机的位置,既然是随机的,必然是有随机的区间,先获取画布的宽高,线条和圆的位置就是(0~画布的宽高区间)的随机位置,再定义一个随机字符,获取随机的索引值,即可生成随机的验证码。需要刷新,直接把以下代码封装在函数里,用一个事件触发即可。
源代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>canvas验证码</title> </head> <body> <canvas id="code" width="80" height="30" style="border: 1px solid #c"></canvas> <script src="jq/jquery-3.2.1.min.js"></script> <script> var canvasW=$("#code").width(); var canvasH=$("#code").height(); //获取任意区间随机数 var getRandom=function (maxNum) { return Math.floor(Math.random()maxNum); } //随机颜色 var getColor=function () { var r=getRandom(256), g=getRandom(256), b=getRandom(256); return "rgb("+[r,g,b].join(',')+")"; } var ctx=$("#code")[0].getContext("2d"); var lineNum=3,arcNum=20; //绘制线 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(); } //绘制点 for (var i=0;i<arcNum;i++){ ctx.beginPath(); ctx.arc(getRandom(canvasW),getRandom(canvasH),1,0,2Math.PI); ctx.fillStyle=getColor(); ctx.closePath(); ctx.fill(); } //绘制验证码 var codeTxt="ABCDEFGHIJKLIMNOPQRSTUVWSYZ1234567890";; for(var i=0;i<4;i++){ var txt=codeTxt.split("")[getRandom(codeTxt.length)]; //绘制验证码 ctx.beginPath(); ctx.font="23px 微软雅黑"; ctx.fillStyle=getColor(); ctx.fillText(txt,20i,25); ctx.closePath(); } </script> </body> </html>
最终效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程