使用canvas画布生成二维码
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画布生成二维码的更多相关文章
- 动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)
在前端开发并打算推广一个APP的时候,推广页是免不了的,而推广页的展示方式一般是给人家一个二维码,让别人自己去安装APP,这样前段任务也达到了,这次写这篇文章的原因主要还是总结一下,其中有很多不完善的 ...
- 小程序canvas生成二维码图片踩的坑
1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...
- 4种方法生成二维码 (js 控制canvas 画出 二维码)
随着网络的迅速发展 发展 发展,二维码的应用将会越来越多.同时很多只是很平凡的二维码,请拿起你的手 把这个二维码 设计起来吧.下面分享了几个非常好的二维码设计. 二维码原理: 二维条码/二维码可以分 ...
- js生成二维码以及点击下载二维码
js生成二维码 jquery.qrcode.js可以快速使用页面生成二维码.但改项目有两个小问题:1.不支持中文:2.不支持二维码中间生成图片. 支持中文的jquery-qrcode jquery.q ...
- 微信小程序之生成二维码
最近项目中涉及到小程序的生成二维码,很是头疼,经过多次摸索,整理出了自己的一些思想方法,如有不足,欢迎指正. 首先完全按照小程序的结构依次填坑. pages--index.wxml <view ...
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制. 在Wind ...
- 使用jquery.qrcode生成二维码(转)
jQuery 的 qrcode 插件就可以在浏览器端生成二维码图片. 这个插件的使用非常简单: 1.首先在页面中加入jquery库文件和qrcode插件. <script type=" ...
- Jquery.Qrcode在客户端动态生成二维码并添加自定义Logo
0 Jquery.Qrcode简介 Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服 ...
- 使用jquery-qrcode生成二维码
一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...
随机推荐
- Netty的那些”锁”事
Netty锁事的五个关键点: ① 在意锁的对象和范围 --> 减少粒度 ② 注意锁的对象本身大小 --> 减少空间占用 ③ 注意锁的速度 --> 提高速度 ④不同场景选择不同 ...
- hdu 6601 区间条件极值 - 区间 最大 三角形周长
题目传送门//res tp hdu 目的 对长度为n的区间,给定q个子区间,求其元素能构成三角形的最大周长.有多组测试. n 1e5 q 1e5 ai [1,1e9] (i∈[1,n]); 数据结构 ...
- HTML DOM focus() 方法
目录 HTML DOM focus() 方法 实例 定义和使用 浏览器支持 语法 参数 技术描述 更多实例 实例 实例 HTML DOM focus() 方法 实例 为 <a> 元素设置焦 ...
- SharePoint 创建页面布局
一.前言 文章成体系,如果有不明白的地方请查看前面的文章. 二.目录 1.创建页面布局 2.首次使用页面布局 3.修改页面布局 4.使用页面布局 5.最终效果 1.创建页面布局 (1)打开设计管理器, ...
- 树莓派3B+和3B 安装64位debian GUN/Linux系统
请直接参考如下博客: https://blog.csdn.net/u013451404/article/details/80710136 如果是3B的树莓派用户,只需要把第一个分区boot里的.dtb ...
- O039、Unshelve Instance 操作详解
参考https://www.cnblogs.com/CloudMan6/p/5529915.html 上一节我们 shelve Instance 到 Glance,本节学习如何通过 unshelv ...
- ES6入门五:箭头函数、函数与ES6新语法
箭头函数的基本用法与特点 函数与ES6新语法 一.箭头函数的基本用法与特点 声明箭头函数采用声明变量和常量的关键字:var.let.const 箭头函数的参数:没有参数用"()"空 ...
- 实现双向绑定Proxy比defineproperty优劣如何?
前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向绑定 ...
- vue项目默认IE以最高级别打开
只需要在index.html加入 <meta http-equiv="X-UA-Compatible" content="IE=Edge">
- Hive的日志操作
想要看hive的日志,我们查看/home/hadoop/hive/conf/hive-log4j2.properties # list of properties property.hive.log. ...