获取验证码canvas
2019独角兽企业重金招聘Python工程师标准>>>
1,html部分
<div class="box"><label class="side">验证码</label><input class="box-flex input-full" id="verify" type="text" placeholder="请输入验证码" ><div class="side" style="width: 100px;margin-left:10px;"><canvas width="100" height="40" id="verifyCanvas"></canvas><img id="code_img"></div></div>
2,js部分
//下面为验证码var nums = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R','S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x','y', 'z'];drawCode();// 绘制验证码function drawCode() {var canvas = document.getElementById("verifyCanvas"); //获取HTML端画布var context = canvas.getContext("2d"); //获取画布2D上下文context.fillStyle = "#565656"; //画布填充色context.fillRect(0, 0, canvas.width, canvas.height); //清空画布context.fillStyle = "white"; //设置字体颜色context.font = "25px Arial"; //设置字体var rand = new Array();var x = new Array();var y = new Array();for (var i = 0; i < 5; i++) {rand[i] = nums[Math.floor(Math.random() * nums.length)]x[i] = i * 16 + 10;y[i] = Math.random() * 20 + 20;context.fillText(rand[i], x[i], y[i]);}//画3条随机线for (var i = 0; i < 3; i++) {drawline(canvas, context);}// 画30个随机点for (var i = 0; i < 30; i++) {drawDot(canvas, context);}convertCanvasToImage(canvas)}// 随机线function drawline(canvas, context) {context.moveTo(Math.floor(Math.random() * canvas.width), Math.floor(Math.random() * canvas.height)); //随机线的起点x坐标是画布x坐标0位置,y坐标是画布高度的随机数context.lineTo(Math.floor(Math.random() * canvas.width), Math.floor(Math.random() * canvas.height)); //随机线的终点x坐标是画布宽度,y坐标是画布高度的随机数context.lineWidth = 0.5; //随机线宽context.strokeStyle = 'rgba(50,50,50,0.3)'; //随机线描边属性context.stroke(); //描边,即起点描到终点}// 随机点(所谓画点其实就是画1px像素的线,方法不再赘述)function drawDot(canvas, context) {var px = Math.floor(Math.random() * canvas.width);var py = Math.floor(Math.random() * canvas.height);context.moveTo(px, py);context.lineTo(px + 1, py + 1);context.lineWidth = 0.2;context.stroke();}// 绘制图片function convertCanvasToImage(canvas) {document.getElementById("verifyCanvas").style.display = "none";var image = document.getElementById("code_img");image.src = canvas.toDataURL("image/png");return image;}// 点击图片刷新document.getElementById('code_img').onclick = function () {$('#verifyCanvas').remove();$('#verify').after('<canvas width="100" height="40" id="verifyCanvas"></canvas>');drawCode();}
转载于:https://my.oschina.net/u/2393989/blog/2254786
获取验证码canvas相关推荐
- 微信小程序获取验证码倒计时
实现效果图 使用方法: setInterval demo:(如果对 setInterval不了解的可以先百度下) xml 中写一个按钮: <view class="container& ...
- 小程序:js获取验证码时(倒计时模块)
代码例子截图最近在上手开发小程序,发现其实小程序要比vue真的要简单太多了,有一套自己的html(WXML),css(WXSS),虽然有些标签不能直接沿用html5的标签来开发,不过内置的标签还是很好 ...
- 免费获取验证码60秒倒计时
免费获取验证码60秒倒计时 <!DOCTYPE html> <html> <head> <script src="http://libs.baidu ...
- selenium 验证码识别_如何获取验证码?
工作中,如何用python和selenium提取验证码呢? 获取验证码的方法 按照以往的经验,有4种方法: 让开发帮忙去掉验证码代码,重新部署环境 弄个万能验证码,每次登陆都可以登陆 用cookie添 ...
- 8.腾讯微博Android客户端开发——自动获取验证码(2)
上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...
- android 保存退出之前的页面_项目实战:Qt+Android模拟操作器(模拟操作app,打开,点击,输入,获取验证码等等)...
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109313803 各位读者,知识无穷而人力有穷 ...
- 通过webbrowser控件获取验证码
1.首先介绍下基本控件(拖控件大家都会,我就不一一介绍了),看下图: 2.添加MSHTML引用,步骤如下: 解决方案-右键"引用"-添加引用-在.NET下找到Microsoft. ...
- 微信小程序之获取验证码js
在微信小程序中怎样实现获取验证码的倒计时功能捏,倒计时的原理是一样一样的,就是某些地方需要注意. 第一步:结构 <view class='get-code' wx:if="{{!isS ...
- 腾讯微博Android客户端开发——自动获取验证码
上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...
最新文章
- ML之LoRDTRF:基于LoRDT(CART)RF算法对mushrooms蘑菇数据集(22+1,6513+1611)训练来预测蘑菇是否毒性(二分类预测)
- 【数据库复习】第二章关系数据库
- XAML实例教程系列 - 命名空间(NameSpace) 三
- linux 内核编号含义_如何阅读linux内核代码?
- [渝粤教育] 盐城师范学院 光学 参考 资料
- sql 删除依赖_关系数据库标准语言SQL(二)
- 玩转 SpringBoot 2 之整合定时任务篇
- ArchLinux pacman 提高俩倍下载速度方法
- 2019年新年第一天,我也制定一下2019年计划,
- linux 内核配置ip地址,linux内核IP地址转换函数
- win7下桌面IE快捷方式无法删除解决方法
- RxSwift学习记录
- 服务器的类型都有哪些
- cad2012打开后闪退_为什么CAD2012一打开就闪退啊。求大神解答
- Django 基础(6)-路由Routers-SimpleRouter-DefaultRouter、 action装饰器、URL路径参数
- Http 3840 错误
- mysql substr无效_mysql substr()函数用法
- Android电子书阅读器开发笔记(1):创建电子书阅读器项目
- c语言监视哨用法,C++ 实现带监视哨的顺序查找算法
- 全国计算机等级考试三级信息安全技术考试大纲(2018 年版)