首页 > 其他分享 >构建自己的二维码生成工具

构建自己的二维码生成工具

时间:2024-03-18 14:59:49浏览次数:27  
标签:color 生成 二维码 构建 vue3 qrcode import options

原文链接

欢迎大家对于本站的访问 - AsterCasc

前言

最近开发的嵌入式人脸核验机器上有二维码识别解析的需求,所以经常需要使用不同样式的二维码进行测试,进行识别度判断和效率调整。但是很多生成二维码的网址不是广告太多,就是功能不全,所以这里咱们简单写一个放在自己的网站中,方便使用,仅供大家参考

开发

和以前一样,不重复造轮子,咱们还是找别人包实现。这里咱们提供两种选择,一个是qrcode-vue3这种高度集成的包,或者是QR Code Generator或是qrcode这种未完全包装,自由度比较高的包。咱们这里选择qrcode-vue3,一方面刚好我们构建的是vue3,另一方面这个包在功能自由性上非常完善,在样式自由性上也可以说差强人意。小伙伴可以浏览我的构建仅供参考,并没有集成他的全部功能

在这里插入图片描述

首先package.json引入包

{
    //...
    "qrcode-vue3": "^1.6.8",
    //...
}

然后我们只需要引入他的vue组件,再配置传入参数即可在页面上自动生成二维码,

<template>
   <QRCodeVue3 value="Simple QR code"/>
</template>
<script setup>
import QRCodeVue3 from "qrcode-vue3";
//...
</script>

我们一般情况下定义的有,点阵样式options.dotsOptions.typeoptions.cornersSquareOptions.typeoptions.cornersDotOptions.type在我们的样例中,将三合一,但是他本身是可以支持不同样式在点阵中的。还比如点阵颜色和背景颜色options.dotsOptions.coloroptions.backgroundOptions.coloroptions.cornersSquareOptions.coloroptions.cornersDotOptions.color同样,在我们的代码中进行了合并,包括下载、样式相关内容都可以进行自定义。更多自定义选项参考文档源码

这里我们给出代码参考,

<template>

  <div style="padding: 1.5%">

    <div class="code-generator-tag-title">
      <div>
        <q-icon class="q-mx-sm" name="fa-solid fa-qrcode" size="1em"/>
        QRCode Generator
      </div>
    </div>

    <div class="row justify-center" style="margin: 2% 2% 1% 2%; min-height: 30rem">
      <div class="row col-11 col-lg-8">
          
          <!-- something else -->
          
        <div class="col-4">
          <QRCodeVue3
              :width="280"
              :height="280"
              :value="qrValue"
              :key="qrValue + qrType + qrColor + qrBgColor"
              :dotsOptions="{
                type: qrType,
                color: qrColor,
              }"
              :backgroundOptions="{
                color: qrBgColor
              }"
              :cornersSquareOptions="{
                color: qrColor,
                type: qrType,
              }"
              :cornersDotOptions="{
                color: qrColor,
              }"
              myclass="qrcode-generator-download-div"
              download
              downloadButton="qrcode-generator-download-btn"
              :downloadOptions="{
                name: qrValue + '.astercasc.qrcode',
              }"
          />
        </div>
      </div>
    </div>

  </div>
</template>

<script setup>
import QRCodeVue3 from "qrcode-vue3";
import {ref} from "vue";

//qrcode config
let qrType = ref("square")
let qrValue = ref("https://astercasc.com")
let qrColor = ref("#004400")
let qrBgColor = ref("#FFFFFF")

</script>

<style lang="sass" scoped>
@import "@/styles/cask.sass"
@import "@/styles/cask-little-mini-style.scss"

.code-generator-tag-title
  font-family: Roboto Slab, sans-serif
  letter-spacing: -.05rem
  font-size: 2.5rem
  color: $cask_dark_jungle_green
  margin-bottom: 1rem
  opacity: 0.8
  font-weight: 400

</style>

<style lang="sass">

.qrcode-generator-download-div
  margin: 5rem 0 2rem 0

.qrcode-generator-download-btn
  position: absolute
  left: 50%
  margin: .5rem 0 0 -5rem
  border-color: transparent
  cursor: pointer
  font-family: Roboto Slab, sans-serif
  text-align: center
  color: white
  min-height: 2.5rem
  width: 10rem
  background-image: linear-gradient(195deg, #447550, #2B5853)
  border-radius: 0.8rem
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12)

</style>

全部示例参考网站源码

注意

  • 传入属性key如果改变,组件会接收到事件,重刷二维码。这里选择将所有参数相加来的方式,完成任意参数改变则更新二维码的需求,如果小伙伴有别的需求可以自行修改触发二维码重刷方式
  • 该项目使用了vue的实验特性Suspense,在非生产环境下会产生日志<Suspense> is an experimental feature and its API will likely change.,介意的小伙伴可以通过patch-package修改源码,注释掉这个提示。如果不希望使用这个实验特性可以直接修改源码或者更换使用包

原文链接

欢迎大家对于本站的访问 - AsterCasc

标签:color,生成,二维码,构建,vue3,qrcode,import,options
From: https://blog.csdn.net/AsterCass/article/details/136805873

相关文章

  • 迈向生成式几何 AI
    AI生成360°图像。[原始图像由作者使用CopernicAI生成。一、说明  近年来,能动人工智能取得了显著的进步,使机器能够生成图像、文本甚至音乐。然而,仍然缺少一些数据模式。那就是几何事物的生成。本篇注意这个事情并给出观点。二、AI生成模式概说  一些最著名......
  • 关于scss手动遍历生成类名
    1、自动生成宽度类名$width-name:300,100;@each$namein$width-name{.w#{$name}{width:$name+px;}};//以上代码将会生成.w300{width:300px;};.w100{width:100px;}2、自动生成间距类名$margin-name:(mt:(16,24,10),mb:(16),ml:......
  • 数据管理:构建数字化世界的基石
    1.&nbsp;引言:数据管理的重要性在数字化浪潮席卷全球的今天,数据已经成为驱动经济社会发展的核心要素。无论是企业决策、科学研究,还是个人生活,都离不开数据的支撑。因此,数据管理的重要性日益凸显。良好的数据管理不仅能够提高数据的质量和价值,还能为企业和个人创造更多的商业机......
  • python 服务自动生成 js 调用
    python服务自动生成js调用原理接管请求分发过程;为每个command维护对应的handler;利用python动态特性,获得handler的参数;利用模版生成js代码;利用**kwargs获取所有参数传递给handler;Demo以Flask为例#main.pyfromflaskimportFlask,requestfro......
  • 整块代码自动生成、智能括号匹配……CodeGeeX编程提效,功能再升级!
    CodeGeeX插件功能持续打磨,希望成为开发者更高效的智能编程工具,提高开发速度和代码质量。今天介绍VSCode中最新的v2.4.0版本插件新功能,让你在编写代码时更加得心应手。一、新增block代码块生成的设置CodeGeeX插件中,以往针对代码生成的行数,只有Automatic和Linebyline两种模式。......
  • 在win10下用pyinstaller打包scrapy项目生成exe文件
    这个玩意的使用方法很简单,但是有很多坑,特别是项目稍微大一点,import引用的很多的时候,那就是打包要人命了,基本不会正常。注意有时候还需要执行pipinstall pywin32之后再进行打包。1、打包完之后,无法导入模块。譬如:你用 pyinstaller-Fentrypoint.py【只生成一个entrypoi......
  • 构建高性能网站:基于软件质量属性的综合优化分析
    构建高性能网站:基于软件质量属性的综合优化分析刘梦阳石家庄铁道大学,河北省石家庄市050043摘要:本文以《高性能网站建设指南》为基础,探讨了如何根据软件质量属性的六个一级指标对网站进行综合优化分析。通过分析功能性、可靠性、可用性、效率、可维护性和安全性等方面,提出了一......
  • 构建链表
    链表 typedefstructmsgdata{charmsgtype;chartext[27];}link_data;typedefstructmsglist{link_datadata;structmsglist*next;}linknode,*linklist;   创建链表思路:首先创建两个结点,即头结点和尾结点;然后创建一个函数:在函数内创建一......
  • 利用openssl生成SM2公私钥对
      openssl1.1.1+版本增加了对SM2的支持,所以我们就能直接使用这些版本的opsnssl生成SM2的公私钥对。首先我们得在Linux或者Windows服务器中安装对应版本的openssl库,具体过程略。软件包请到官网下载:https://www.openssl.org/安装完成后,使用下列命令查看该版本的op......
  • Mybatis-plus构建wrapper条件时出现索引越界异常Caused by: org.apache.ibatis.except
    项目场景:学习springboot整合mybatis-plus时通过构建器执行相关操作@AutowiredBookMappermapper;@Testvoidtest(){QueryWrapper<Book>wrapper=newQueryWrapper<>();wrapper.select("id","name","press")//只查询前三......