微信小程序 二维码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 相关文章推荐
JavaScript中令你抓狂的魔术变量
Nov 30 Javascript
javascript 可以拖动的DIV(二)
Jun 26 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
Nov 07 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
js中创建对象的几种方式
Feb 05 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
iframe高度自适应及隐藏滚动条的实例详解
Sep 29 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
PHP学习笔记之二
2011/01/17 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP实现合并discuz用户
2015/08/05 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
JS操作Cookies的小例子
2013/10/15 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
windows系统下Python环境搭建教程
2017/03/28 Python
python奇偶行分开存储实现代码
2018/03/19 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
会议开场欢迎词
2014/01/15 职场文书
六年级数学教学反思
2014/02/03 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
倡议书格式
2014/04/14 职场文书
施工安全保证书
2015/05/09 职场文书
2015年中秋节主持词
2015/07/30 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
MySQL七大JOIN的具体使用
2022/02/28 MySQL
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js