1. 基本用法

<canvas>标签只有两个属性-----width和height

CSS:

<canvas class="qrcode" width="100%" height="100%"></canvas>

<canvas>元素只是创造了一个固定大小的画布,要想在它上面绘制内容,我们需要找到它的渲染上下文,

<canvas>元素有一个叫做 getContext()的方法,而这个方法就是用来获得渲染上下文和它的绘画功能。

JS:

imageToCanvsa () {
  let that = this
  let canvas = document.createElement('canvas') // 获取canvas对象(通过选择器选择canvas元素)
  let ctx = canvas.getContext('2d') // 获得渲染上下文和他的绘画功能
  // 将二维码的canvas转化成base64
  let qrcode = new Image ()
  qrcode.crossOrigin = 'Anonymous'
  qrccode.src = document.querySelector('.qrcode').toDataURL()
  let img = new Image()
  img.crossOrigin = 'Anonymous'
  img.src = that.appData.share.img[that.currentIdx].img_url
  img.onload = fuction () {
    canvas.width = img.width // 画板宽
    canvas.height =img.height // 画板高
    // 画图
    // 参数:图片对象、相对画布的起点x坐标、相对画布的起点y坐标、绘制的图片宽度(二维码,px)、绘制的图片高度(二维码,px)
    ctx.drawImage(img, 0, 0, img.width, img.height)
    ctx.drawImage(qrcode, img.width * 0.3, img.height * 0.65, img.width * 0.4, img.width * 0.4)
    ctx.fillStyle = '#fff' // 定义用白色填充矩形
    // 绘制“已填充”的矩形
    // 参数:矩形左上角的x坐标、矩形左上角的y坐标、矩形宽(像素)、矩形高(像素
    ctx.fillRect(img.width * 0.3, img.height * 0.878, img.width * 0.4, img.height * 0.035)
    ctx.fillStyle = '#000'
    ctx.font = 'normal 28px Arial'
    ctx.textBaseline = 'middle' // 文本基线在正中
    // 在画布上绘制"被填充"的文本
    // 参数:规定在画布上输出的文本、开始绘制文本的x坐标、开始绘制文本的y坐标
    ctx.fillText(`邀请码:${that.nikname}`, img.width * 0.5, img.height * 0.896)
    that.poster = canvas.toDataURL()
  }
}

使用canvas画布生成二维码的更多相关文章

  1. 动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)

    在前端开发并打算推广一个APP的时候,推广页是免不了的,而推广页的展示方式一般是给人家一个二维码,让别人自己去安装APP,这样前段任务也达到了,这次写这篇文章的原因主要还是总结一下,其中有很多不完善的 ...

  2. 小程序canvas生成二维码图片踩的坑

    1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...

  3. 4种方法生成二维码 (js 控制canvas 画出 二维码)

    随着网络的迅速发展 发展 发展,二维码的应用将会越来越多.同时很多只是很平凡的二维码,请拿起你的手 把这个二维码 设计起来吧.下面分享了几个非常好的二维码设计.  二维码原理: 二维条码/二维码可以分 ...

  4. js生成二维码以及点击下载二维码

    js生成二维码 jquery.qrcode.js可以快速使用页面生成二维码.但改项目有两个小问题:1.不支持中文:2.不支持二维码中间生成图片. 支持中文的jquery-qrcode jquery.q ...

  5. 微信小程序之生成二维码

    最近项目中涉及到小程序的生成二维码,很是头疼,经过多次摸索,整理出了自己的一些思想方法,如有不足,欢迎指正. 首先完全按照小程序的结构依次填坑. pages--index.wxml <view ...

  6. .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现

    在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制. 在Wind ...

  7. 使用jquery.qrcode生成二维码(转)

    jQuery 的 qrcode 插件就可以在浏览器端生成二维码图片. 这个插件的使用非常简单: 1.首先在页面中加入jquery库文件和qrcode插件. <script type=" ...

  8. Jquery.Qrcode在客户端动态生成二维码并添加自定义Logo

    0 Jquery.Qrcode简介 Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服 ...

  9. 使用jquery-qrcode生成二维码

    一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...

随机推荐

  1. PHP生成中文验证码并检测对错实例

    PHP生成中文验证码并检测对错实例,中文验证码的例子还是比较少的,今天给大家分享一下,支持自定义中文.字体.背景色等 生成验证码,注意font字体路径要对,否则显示图片不存在 session_star ...

  2. thinkphp命令行生成模型类

    thinkphp命令行生成模型类 当你需要创建大量的模型类的时候,不妨考虑下命令行生成,可以快速创建模型类. 在windows下面,使用Win+R输入cmd进入命令控制台,切换到项目根目录(也就是th ...

  3. WAV格式文件无损合并&帧头数据体解析(python)(原创)

    一,百度百科 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频 ...

  4. c#中异常捕获,回滚

    语法: try { 有可能出现错误的代码写在这里 } catch { 出错后的处理 } 如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容, 如果try中的代码一但 ...

  5. linux 之内存与磁盘

    记录工作中常用操作 1. 新建和增加SWAP分区(都必须用root权限,操作过程应该小心谨慎.) 1)新建分区 .以root身份进入控制台(登录系统),输入 swapoff -a #停止所有的swap ...

  6. java 读取property

    Properties prop = new Properties(); String path = AlarmController.class.getResource("/").g ...

  7. vue移动端立项

    步骤一:使用vue-cli模板创建新项目:vue init webpack ‘vue-test’ 点击查看 步骤二:引入SCSS npm  install sass-loader -D npm ins ...

  8. 公司最喜欢问的Java集合类

    java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Coll ...

  9. Gephi简单导入数据

    使用工具 Gephi-0.9.2 事前要导入的数据 Node.csv 节点:名称可以所以定,格式.csv Edge.csv 边:名称可以所以定,格式.csv 导入操作 新建项目 导入节点 新建列要与表 ...

  10. SpringBoot-核心依赖说明

    spring-boot-dependencies 一般用来放在父项目中,来声明依赖,子项目引入相关依赖而不需要指定版本号,好处就是解决依赖冲突,统一管理依赖版本号 利用pom的继承,一处声明,处处使用 ...