微信小程序 二维码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优化尝试小结
Feb 06 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
Jul 08 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
详解适配器在JavaScript中的体现
Sep 28 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
微信小程序8种数据通信的方式小结
Feb 03 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
微信小程序 小程序制作及动画(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新手上路(十二)
2006/10/09 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现配置文件备份的方法
2015/07/30 Python
深入学习python的yield和generator
2016/03/10 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
django静态文件加载的方法
2018/05/20 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
幼儿园教师的考核评语
2014/04/18 职场文书
公司运动会策划方案
2014/05/25 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
党员自我对照检查材料
2014/08/19 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
四风之害观后感
2015/06/09 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers