使用JavaScript与画布上实现一个验证码生成功能

  介绍

使用JavaScript与画布上实现一个验证码生成功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

源码展示:

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   & lt;才能meta  charset=癠TF-8"比;   & lt;才能title> Title</title>   & lt;/head>   & lt; body>   & lt; style>   ,   canvas {才能   边境:,,,,1 px  solid  # 000;   ,,,vertical-align:,底部;   ,,}   ,   input {才能   ,,,填充:,0;   ,,,宽度:,120 px;   ,,,身高:,30 px;   ,,,vertical-align:,底部;   边境:,,,,1 px  solid  # 000;   ,,}   ,   & lt;/style>   ,   ,   & lt; input 类型=皌ext", name=皌extContent",占位符=笆淙搿氨?   & lt; canvas  id=癱an",宽度=?20“,身高=?0“祝辞& lt;/canvas>   & lt; button>提交& lt;/button>   ,   ,   & lt; script>   ,   ,/* 1,才能背景颜色时随机的   ,* 2,其中的内容是随机的   ,* 3,内容的颜色,随机的   ,* 4,每个字的旋转度数随机的   文,* 5日本的大小随机的   ,* 6,干扰线的位置随机的   ,* 7,干扰线的颜色随机的   ,* 8,干扰点   *,*/,   var 才能;btn =, document.querySelector (“button");   var 才能;还要=,document.querySelector (“canvas");   var 才能;ctx =, can.getContext (“2 d");   ,   var 才能;text =,“0123456789 abcdefghijklmnopqrstuvwsyzabcdefghigklmnopqrstuvwsyz";   ,   ,//才能设置4个内容,将canvas 平分成4分,然后让内容在1/4的空间旋转缩放//才能原理,:每一次都是位移旋转之后再回复原位   for 才能;(var 小姐:=,0;,小姐:& lt;, 4,,我+ +),{   ,,,var  txt =,文本(randNum (0, text.length-1)];   ,   ,,,ctx.fillStyle =, getRandColor (80150);   ,,,ctx.font=randNum (25) +“px  & # 39;宋体& # 39;“;   ,,,ctx.textBaseline =,“top";   ,,,var  x =, randNum (0, 10);   ,   ,,,var  deg =, randNum (-30, 30);   ,   ,,,ctx.translate (x + 30 *我,0);   ,,,ctx.rotate (Math.PI/180 *度);   ,,,ctx.fillText (txt, 0, 0);   ,,,ctx.rotate (Math.PI/180 *度);   ,,,ctx.translate (- (x + 30 *我),0);   ,   ,,}   ,   ,/*才能干扰点*/,,(var 我=0;i<30;我+ +){   ,,,ctx.beginPath ();   ,,,ctx.arc (randNum (0120), randNum (0, 30), 1, 0, Math.PI * 2);   ,,,ctx.fillStyle=getRandColor (150180);   ,,,ctx.fill ();   ,,}      ,/*才能干扰线*/,,(var  i=0; i<4,我+ +){   ,,,ctx.beginPath ();   ,,,ctx.moveTo (randNum (0120), randNum (0, 30));   ,,,ctx.lineTo (randNum (0120), randNum (0, 30));   ,,,ctx.strokeStyle=getRandColor (150180);   ,,,ctx.lineWidth=, randNum (1、2);   ,,,ctx.stroke ();   ,,}   ,   ,/*,才能获取随机色值*/,//,才能,a 先获取一个随机数   console.log才能(math . random());,//产生一个0 ~ 1之间的随机小数   var 才能;num =, math . random(), *,(100年,安康;30,+,- 1),+,30,,//产生一个随机数30 ~ 100,之间的数   console.log才能(num);   ,//,才能,b 获取一个区间段的随机数(整数)   function 才能randNum(最小值,最大值),{   ,,,return 方法(math . random (), *, (max 安康;min  +, 1), +, min);   ,,}   ,//,,,,,c获取随机颜色值   function 才能getRandColor(最小值,最大值),{   ,,,var  R =, randNum(最小值,最大值);   ,,,var  G =, randNum(最小值,最大值);   ,,,var  B =, randNum(最小值,最大值);   ,   ,,,return  & # 39; rgb (& # 39;, +, R  +, & # 39;, & # 39;, +, G  +, & # 39;, & # 39;, +, B  +, & # 39;) & # 39;;   ,,}   ,   ,   & lt;/script>   ,   ,   & lt;/body>   & lt;/html>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

使用JavaScript与画布上实现一个验证码生成功能