分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Jquery制作图片验证码实例-canvas 绘制

发布时间:2023-09-06 02:33责任编辑:彭小芳关键词:验证码

CSS

.identify-code{ ???position: absolute; ???right: 6px; ???top: 50%; ???width: 118px; ???height: 40px; ???margin: -21px 0 0 0;}

HTML

<span id="code" class="identify-code">  <canvas class="show-captcha" id="canvas" style="width: 100%; height: 100%;"></canvas></span>

JS

/**绘制验证码图片**/function drawPic() { ???var canvas = document.getElementById("canvas"); ???var width = canvas.width; ???var height = canvas.height; ???//获取该canvas的2D绘图环境 ????var ctx = canvas.getContext(‘2d‘); ????ctx.textBaseline =‘bottom‘; ???/**绘制背景色**/ ???ctx.fillStyle = randomColor(180, 240); ???//颜色若太深可能导致看不清 ???ctx.fillRect(0,0,width,height); ???/**绘制文字**/ ???var str =‘ABCEFGHJKLMNPQRSTWXY123456789abcefghjklmnpqrstwxy‘; ???var code=""; ???//生成四个验证码 ???for(var i = 1;i <= 4; i++) { ???????var txt = str[randomNum(0,str.length)]; ???????code=code+txt; ???????ctx.fillStyle = randomColor(50,160); ???????//随机生成字体颜色 ???????ctx.font = randomNum(90,110) +‘px SimHei‘; ???????//随机生成字体大小 ???????var x = 10 + i * 50; ???????var y = randomNum(100, 135); ???????var deg = randomNum(-30, 30); ???????//修改坐标原点和旋转角度 ???????ctx.translate(x, y); ????????ctx.rotate(deg * Math.PI /180); ????????ctx.fillText(txt,0,0); ???????//恢复坐标原点和旋转角度 ???????ctx.rotate(-deg * Math.PI /180); ???????ctx.translate(-x, -y); ???} ???????????/**绘制干扰线**/ ???for(var i=0;i<3;i++) { ???????ctx.strokeStyle = randomColor(40, 180); ???????ctx.beginPath(); ???????ctx.moveTo(randomNum(0,width/2), randomNum(0,height/2)); ???????ctx.lineTo(randomNum(0,width/2), randomNum(0,height)); ???????ctx.stroke(); ???} ???/**绘制干扰点**/ ???for(var i=0;i <50;i++) { ???????ctx.fillStyle = randomColor(255); ???????ctx.beginPath(); ???????ctx.arc(randomNum(0, width), randomNum(0, height),1,0,2* Math.PI); ???????ctx.fill(); ???} ???return code;}/**生成一个随机数**/function randomNum(min, max) { ???return Math.floor(Math.random() * (max - min) + min);}/**生成一个随机色**/function randomColor(min, max) { ???var r = randomNum(min, max); ???var g = randomNum(min, max); ???var b= randomNum(min, max); ???return "rgb(" + r + "," + g + "," + b + ")";}

调用实例

$("#code").unbind(‘click‘).click(function(e){ ???e.preventDefault(); ???createCode();});
//生成验证码
function createCode(){
  VerificationCodeErrCount = 0;
  randomCode = drawPic();
  return randomCode;
} ???????????

Jquery制作图片验证码实例-canvas 绘制

原文地址:https://www.cnblogs.com/hualuo-sign/p/10384557.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved