微信小程序 二维码canvas绘制实例详解


Posted in Javascript onJanuary 06, 2017

微信小程序 二维码canvas绘制

微信小程序 二维码canvas绘制实例详解

var canvas = {

  width: 100,

  height:36

};

function verification(ctx) {




  // //清空画布

  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // //生成随机颜色

  function getRandomColor() {

    return "#" + ("00000" + ((Math.random() * 16777215 + 0.5) >> 0).toString(16)).slice(-6);

  }

  // //定义线性渐变

  var gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height);

  gradient.addColorStop("0", getRandomColor());

  gradient.addColorStop("0.5", getRandomColor());

  gradient.addColorStop("1.0", getRandomColor());




  // //生成随机数

  function rnd(min, max) {

    return min + Math.floor(Math.random() * (max - min + 1));

  }




  // //绘制干扰线条

  function line() {

    ctx.beginPath();

    ctx.moveTo(rnd(0, canvas.width), rnd(0, canvas.height));

    ctx.lineTo(rnd(0, canvas.width), rnd(0, canvas.height));

    ctx.closePath();

    ctx.lineWidth = rnd(1, 3);

    ctx.setFillStyle(gradient)

    ctx.stroke();

  }




  // //绘制干扰点

  function point() {

    ctx.fillRect(rnd(0, canvas.width), rnd(0, canvas.height), 2, 2);

  }




  // //绘制验证码

  var text = rnd(1000, 9999);

  ctx.setFontSize(30)

  ctx.setFillStyle(gradient)

  ctx.fillText(text,2, 25);




  // //生成干扰元素

  for (var i = 0; i < 8; i++) {

    line();

  }

  for (var i = 0; i <100; i++) {

    point();

  }

  ctx.draw()

  return text;

}

module.exports = { verification: verification };

上面直接放在一个js中吧方法暴露出来就可以了,顺便说一下关于 样式的问题,因为没必要再去写一篇了,样式:padding ,

以前在html页面上我有时候习惯padding:0px,这样设置为0,但是在小程序中写成padding:0rpx,仍会有内边距存在,写成padding:0,不要带单位就可以了

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
Select标签下拉列表二级联动级联实例代码
Feb 07 Javascript
Node.js编写组件的三种实现方式
Feb 25 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
vue脚手架及vue-router基本使用
Apr 09 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
通过vue-cli3构建一个SSR应用程序的方法
Sep 13 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 #Javascript
JS调用Android、Ios原生控件
Jan 06 #Javascript
JS正则匹配中文的方法示例
Jan 06 #Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 #Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 #Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 #Javascript
js实现前端分页页码管理
Jan 06 #Javascript
You might like
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JSON取值前判断
2014/12/23 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
python中通过预先编译正则表达式提高效率
2017/09/25 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python解析xml简单示例
2019/06/21 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
工作过失检讨书
2014/02/23 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
爱的教育读书笔记
2015/06/26 职场文书
《正比例》教学反思
2016/02/23 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL