首页 > 其他分享 >前端生成二维码,qrcode使用说明,canvas查看大图

前端生成二维码,qrcode使用说明,canvas查看大图

时间:2023-09-15 16:56:55浏览次数:37  
标签:canvas 大图 生成 二维码 let qrcode id

生成二维码

用于vue项目通过字符串转换生成二维码的三方插件

安装插件

npm install --save qrcode

引入使用

import QRCode from "qrcode"

页面

<!-- 放置二维码的容器-->
<canvas :id="'qrCode_id' + stringxxxxx" class="qrCode_style"></canvas>
<!-- 可为二维码添加点击事件(点击查看大图)-->
<!-- @click="qrClick('qrCode_id' + stringxxxxx, 'single')"-->

样式

.qrCode_style {
    width: 100px !important;
    height: 100px !important;
}

方法

通过放置canvas填充内容方式实现

methods:{
    // 生成二维码方法(核心方法)
    qrFunction(id, qrString) {
        console.log('调用', id)
            let opts = {
            errorCorrectionLevel: 'H', //容错级别
            type: 'image/png', //生成的二维码类型
            quality: 1, //二维码质量
            margin: 2, //二维码留白边距
            width: 900, //宽
            height: 900, //高
            text: '', //二维码内容
            color: {
                dark: '#333333', //前景色
                light: '#fff', //背景色
            },
        }
        this.QRCodeMsg = qrString //生成的二维码为URL地址js
            // this.QRCodeMsg = Math.random() + '' //生成的二维码为URL地址js
            let msg = document.getElementById(id)
            // 将获取到的数据(val)画到msg(canvas)上
            QRCode.toCanvas(msg, this.QRCodeMsg, opts, (error) => {
                // this.getBase64Image(id)
            })
    },

    // 点击查看大图方法(可选)
    qrClick(id, ref) {
        this.urls = []
            this.urls.push(this.getBase64Image(id))
        /**查看大图方法
        **
        **       写这里
        **
        */
    },
    // 获取base64格式图片(可选)
    getBase64Image(id) {
        let canvas = document.getElementById(id)
            // 使用画布生成 base64 的方法
            let dataUrl = canvas.toDataURL('image/png')
            return dataUrl
    },
}

方法执行

// 找个地方执行方法
mounted() {
    this.$nextTick(() => {
        this.qrFunction('qrCode_id' + stringxxxxx, 内容)
    })
},

上面的变量需要自己声明,查看大图的方法需要自己根据情况编写

标签:canvas,大图,生成,二维码,let,qrcode,id
From: https://www.cnblogs.com/ommggg/p/17705404.html

相关文章

  • uQRCode 全端二维码生成插件
    uQRCode全端二维码生成插件地址:https://ext.dcloud.net.cn/plugin?id=1287  #npm安装npminstalluqrcodejs//npm安装importUQRCodefrom'uqrcodejs';//npminstalluqrcodejs<canvasid="qrcode"canvas-id="qrcode"style="width:......
  • Canvas之画布操作
    目录Canvas之画布操作作者微博: @GcsSloop【本系列相关文章】上一篇Canvas之绘制基本形状中我们了解了如何使用Canvas绘制基本图形,本次了解一些基本的画布操作。本来想把画布操作放到后面部分的,但是发现很多图形绘制都离不开画布操作,于是先讲解一下画布的基本操作方法。一.Canv......
  • 【愚公系列】2023年09月 WPF控件专题 Canvas控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • canvas+js接金币小游戏
    忙里偷闲,让UI小伙伴帮忙搞了几个图片元素,利用飞机大战代码进行修改,做个接金币小游戏~varcanvas=document.getElementById("canvas");varcontext=canvas.getContext("2d");varimgWidth=window.innerWidth;varimgHeight=window.innerHeigh......
  • HTML5 Canvas 数据持久化存储之属性列表
    正常我们设置属性的时候,属性和属性值的keyvalue对应,但是在实际开发中,经常遇到属性值可能需要从多项中选择,这个时候用原生的HTML5配合JavaScript来实现这个功能会让人非常头疼,我试着用 HTforWeb 来实现了这个功能,感觉整体实践起来还是比较容易的,所以在这边跟大家分享一......
  • canvas人机对战的五子棋,休闲一下
    canvas画布,还是一个比较令人头疼的东西,由于自己用得少,所以觉得还很欠缺,偶然间看到人家写的五子棋,便也顺便学习一下,写个试试,全当练练手,顺便记录一下。1、先创建canvas,画个棋盘varcontext=chess.getContext('2d');context.strokeStyle="#dedede";vardrawLine=function(){......
  • vue项目Canvas给图片改色,返回base64的图片
     (适应于纯色图片)1.vue文件中创建canvas<!--落图图片改色--><canvasid="mycanvas"></canvas>2.创建changeImgColor.js文件letctx=null;letcanvas=null;letbase64Info=null;exportfunctionsetImgColor(url){returnnewPromise((resolve......
  • 在Canvas上进行文本输入及其它html元素操作
    问题使用canvas绘制了一个表格,想要在上面进行编辑操作,但canvas并不支持修改操作思路通过给html元素设置绝对定位,遮盖canvas上的指定位置,所有编辑操作都在元素上进行,也可以将元素的值绘制到canvas上,示例demo如下:点击查看代码<!DOCTYPEHTML><html><style></style><bodys......
  • 借助html2canvas下载图片,有滚动条的情况显示不全的问题
    我自己的遇到的情况是将页面的一个小窗口里边的内容生成图片下载,试了网上搜到的几个方法都没有生效,最后自己用了个取巧的方法:通过调整overflow-y来解决这个问题。downloadItem(){consttargetDom=document.getElementById(`image-${this.dialogNo}`)targetDo......
  • 【230905-5】用Canvas上勾画对数曲线:y=log10_x
    【图像】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>勾画log10_x</title><styletype="text/css"......