微信小程序 二维码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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
js+JQuery返回顶部功能如何实现
Dec 03 Javascript
js中this的用法实例分析
Jan 10 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
AngularJs 动态加载模块和依赖
Sep 15 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
Vue.js进阶知识点总结
Apr 01 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 Javascript
Vue.js组件实现选项卡以及切换特效
Jul 24 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 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
python发腾讯微博代码分享
2014/01/10 Python
Python NumPy库安装使用笔记
2015/05/18 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
Python 多线程的实例详解
2017/09/07 Python
python简单操作excle的方法
2018/09/12 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
python中time包实例详解
2021/02/02 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
函授自我鉴定
2013/11/06 职场文书
个人自我鉴定写法
2013/11/30 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
颐和园的导游词
2015/01/30 职场文书
python中的装饰器该如何使用
2021/06/18 Python