图形验证码示例图

<template><view class="dis-flex"><view style="margin-top: 8px;">验证码:</view><input:enableNative="false"style="width:100px;height:30px;border-bottom:1px solid #000;"v-model="verCode"name="verCode"id="verCode"><view @tap="refresh()" class="canvas-img-code">/*注: 这里 是支付宝小程序,用的是id,其他平台是用canvas-id='' */<canvas :style="{width:width+'px',height:height+'px'}" id="imgcanvas" @error="canvasIdErrorCallback"></canvas></view></view>
</template><script>data() {return {verCode: '', // 验证码,width: 120,height: 45,}},onShow() {const that = this;setTimeout(() => {that.init();}, 1000);},methods: {// 初始化验证码init() {console.log('start');const context = uni.createCanvasContext('imgcanvas', this);const w = this.width;const h = this.height;context.setFillStyle('white');context.setLineWidth(5);context.fillRect(0, 0, w, h);const pool = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'I', 'M', 'N', 'O', 'P', 'Q', 'R', 'S','T', 'U', 'V', 'W', 'S', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];let str = '';for (let i = 0; i < 4; i++) {const c = pool[this.rn(0, pool.length - 1)];const deg = this.rn(-30, 30);context.setFontSize(18);context.setTextBaseline('top');context.setFillStyle(this.rc(80, 150));context.save();context.translate(30 * i + 15, parseInt(h / 1.5));context.rotate(deg * Math.PI / 180);context.fillText(c, -15 + 5, -15);context.restore();str += c;}console.log(str);uni.setStorage({key: 'imgcode',data: str,});for (let i = 0; i < 40; i++) {context.beginPath();context.arc(this.rn(0, w), this.rn(0, h), 1, 0, 2 * Math.PI);context.closePath();context.setFillStyle(this.rc(150, 200));context.fill();}context.draw();console.log('end');},rc(min, max) {const r = this.rn(min, max);const g = this.rn(min, max);const b = this.rn(min, max);return `rgb(${r},${g},${b})`;},rn(max, min) {return parseInt(Math.random() * (max - min)) + min;},refresh() {this.init();},canvasIdErrorCallback(e) {console.error(e.detail.errMsg);},}
</script>

前端动态生成随机图形验证码相关推荐

  1. uniapp实现动态生成随机图形验证码

    <template><gui-page><view slot="gBody"><view class="content" ...

  2. html5 前端动态加载后端,Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)...

    vue+element的动态表单,动态表格(后端发送配置,前端动态生成) 动态表单生成 elementui官网引导 关键配置 template中,form和form-item的写法和绑定 data里的 ...

  3. 在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码...

    只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这 ...

  4. js前端动态生成变量及python后端动态生成变量接收

    前端代码: let sbmt = function(data){layui.use('layer', function() {var layer = layui.layer;$.ajax({url: ...

  5. 前端——动态生成表格

    案例分析 因为表格数据是不断更新的,我们需要js 动态生成. 这里我们模拟数据,自己定义好数据. 数据我们采取对象形式存储. 所有的数据都是放到tbody里面的行里面. 因为行很多,我们需要循环创建多 ...

  6. vue项目中生成随机图形验证码

    我们在表单验证的时候添加一个图形验证码 首先在components文件夹中新建一个VerificationCode.vue文件,输入以下代码 <template><span clas ...

  7. python随机画圆_python生成随机图形验证码详解

    #导入random模块 import random #导入Image,ImageDraw,ImageFont模块 from PIL import Image,ImageDraw,ImageFont # ...

  8. 前端动态生成横向树形表格

    一.问题 遇到项目需求是横向展示树形数据,之前写的时候element的官方有加载树形数据的表格组件,项目其他地方有用表格组件的写的demo,但是涉及到行合并的逻辑判断,一时没搞清楚,就用原生画了表格. ...

  9. 前端动态生成数组/获取数组对象中的最值

    Array.from Array.from({ length: 20 }, (v, k) => k) 获取数组对象中的最大值/最小值 方法一 Math的静态方法max/min结合ES6的扩展运算 ...

最新文章

  1. kwvcprojparser不是内部_在盗版window xp上安装的visual studio 2010学习版编译ace6.1时出现如下问题...
  2. 【小技巧】深度学习中的那些效率提升利器(附资源)
  3. Mac Hadoop的安装与配置
  4. XSS跨站脚本(web应用)——会话管理(一)
  5. JDK8新特性之Lambda表达式
  6. http网站转换成https网站
  7. 7.上传自己的代码到 composer
  8. 从30天到17小时,如何让HSPICE仿真效率提升42倍?
  9. 2010年新版俏皮话
  10. 如何做到精准引流获客?
  11. 矽力杰SY8088国产代替料RY3408
  12. 圆桌骑士 图的连通性
  13. 什么云服务器比较好?大家用过哪家?
  14. 乘新能源汽车产业发展东风,智能网联驶入快车道
  15. TRIZ创新方法——功能搜索导向
  16. 织梦获取当前栏目的顶级栏目名称。
  17. 拥有用于游戏的独立服务器的好处
  18. 二进制、八进制、十进制、十六进制之间的转换(含小数的转换方法)
  19. 2020年10月虹科Pico汽车示波器简报
  20. Ruby 学习笔记(和 Python3 语法进行对比)

热门文章

  1. USTC English Club Note20211227
  2. java捕捉摄像头画面_在java中捕获来自网络摄像头的图像?
  3. C# linq的学习及使用
  4. 怎样用比较器实现信号的衰减和饱和_水下技术 无人水下航行器在水电站隧洞检查中的应用探讨...
  5. Fabric CA官方文档翻译——Planning for a CA
  6. 小程序发布测试版本步骤
  7. 【JavaScript】- 打地鼠游戏(定时器嵌套延时器)
  8. python2升级python3语法错误总结
  9. 20175208 张家华 实验四《Android开发基础》实验报告
  10. mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法 | 速光网络博客...