干货|如何生成和展示二维码(前后端)

这篇具有很好参考价值的文章主要介绍了干货|如何生成和展示二维码(前后端)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端、后端都可以生成二维码,轮子很多,今天分别来分享一下前后端如何使用轮子生成二维码的方法。

  1. 后端:选择一款合适的二维码生成库,如zxing、qrcode等,并在后端代码中引入该库。编写代码,根据业务需求生成相应的二维码图像,并将其输出为二进制流。

  2. 前端:使用HTML5提供的canvas元素,创建一个画布,并在画布上绘制出后端输出的二维码图像。将画布上的图像转换为DataURL格式,通过img标签显示在页面上,或者直接将DataURL传给后端,生成可供下载的二维码图片。

内容概览:

  • 一、前端生成二维码
  • 二、后端生成二维码
  • 附:下载二维码

一、前端生成二维码

  • package.json 引入依赖: “qrcodejs2”: “0.0.2”
  • 代码中引入并使用
<template>
  <div>
    <el-button type="text" @click="refreshQrCode"><i class="el-icon-refresh"></i>点击刷新二维码</el-button>
    <div id="qrCodeUrl" style="margin-left: 40%;height:250px"></div>
  </div>
</template>
<script setup>
import QRCode from 'qrcodejs2';
export default {
  name: 'Template',
  data() {
    return {
       originUrl:'http://www.baidu.com'
    }
  },
  methods: {
    refreshQrCode() {
      this.$nextTick(function () {
        document.getElementById("qrCodeUrl").innerHTML = "";
        let qrCodeUrl = new QRCode("qrCodeUrl", {
          width: 250,
          height: 250,
          text: this.originUrl, #这里就是二维码内的信息,一般可以扫描连接进行调整或其他
          colorDark: "#409EFF",
          colorLight: "#fff"
        });
      });
    }
  }
}
</script>
<style lang="scss" scoped>
</style>

其他根据业务逻辑进行展示和处理就行。

二、后端生成二维码

后端生成二维码的轮子就更多了,一层套一层的,我们可以选择一个最为简单的,就是引入hutool的依赖,当然觉得重的,可以自己选用zxing原生实现即可。

  • pom文件引入:
   		<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.12</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.4.1</version>
        </dependency>
  • 样例代码:
    @GetMapping("qrcode")
    @ResponseBody
    public void generateQrcode(HttpServletRequest request, HttpServletResponse response){
        String qrCodeUrl = "http://www.baidu.com";//需要生成的内容
        try {
            QrConfig qrConfig = new QrConfig(300, 300);
            //imageType可选:"gif";"jpg";"jpeg";"bmp";"png";"psd";"gif";"jpg";"jpeg";"bmp";"png";"psd";
            QrCodeUtil.generate(qrCodeUrl, qrConfig, "png", response.getOutputStream());
            System.out.println("生成二维码成功!");
        } catch (QrCodeException | IOException e) {
            System.out.println("发生错误! {}!"+ e.getMessage());
        }
    }

前端可以使用流来接收,将图片呈现出来,也可以直接当做图片下载

# 接收数据展示
<img th:src="...../qrcode">

以上都是直接有的轮子,开箱即用。

附:下载二维码

通常页面查看了二维码都会附加下载,将二维码放到其他渠道引流,所以以上是能够从接口或者前端页面获取到二维码的预览了,那么想下载怎么操作呢?

接口部分,直接在浏览器请求接口数据,浏览器就能自动预览,你可以通过截图等方法直接拿到二维码文件。

前端页面部分,我们以来的qrcodejs的组件已经将二维码信息渲染在页面上了,基本思路是可以获取页面渲染的图片数据,直接通过按钮触发<a>标签的形式将页面数据下载。
以下为样例代码:文章来源地址https://www.toymoban.com/news/detail-506649.html

    download() {
      let myCanvas = document.getElementById('qrCode').getElementsByTagName('canvas');
      let a = document.createElement('a')
      a.href = myCanvas[0].toDataURL('image/png');
      a.download = '二维码';
      a.click()
      this.$message({
        message: "二维码正在进行下载保存",
        type: 'success'
      })
    }

到了这里,关于干货|如何生成和展示二维码(前后端)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【uni-app】后端返回base64转二维码并显示在canvas生成海报

    【uni-app】后端返回base64转二维码并显示在canvas生成海报

    使用官方的 uni.getFileSystemManager().writeFile() 方法可将base64码转成的二维码显示在画布上,代码如下: const obj = {                     page: \\\'pages/sort/goodsDetail\\\',                     co_Nu: this.goodInfo.co_Nu                 }                 const _this = this       

    2024年02月11日
    浏览(42)
  • 生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    情景: 1、在微信小程序审核完成,发布到线上后,想通过扫描小程序二维码进入小程序 2、可分享二维码出去,通过二维码扫码进入小程序 方法: 1、进入微信小程序的后台配置。链接:微信公众平台。(如图一) 2、进入 “设置” -- “ 基本设置” -- “小程序码及线下物

    2024年02月12日
    浏览(49)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(10)
  • 微信小程序使用--如何生成二维码

    微信小程序使用--如何生成二维码

    一、生成二维码 1.获取token 参照官方文档说明: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html 其中grant_type是写死的,appid和secret是注册小程序的时候获取的,然后会得到一个默认两小时失效的token 2.获取二维码 参照官方文档说明: https://developers.

    2024年02月04日
    浏览(13)
  • 如何使用Stable Diffusion生成艺术二维码?

    如何使用Stable Diffusion生成艺术二维码?

    物理内存:至少16G(8G直接安装阶段就卡死) N卡:此处我使用GTX 1660 6G (2019年双12购买) windows 11 网络要通畅 git: https://git-scm.com/download/win Python: https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe CUDA驱动:https://developer.nvidia.com/cuda-toolkit-archive 如何查看下载哪个版本的CUDA驱动?

    2024年02月08日
    浏览(12)
  • 如何生成WIFI二维码供手机扫一扫连接WIFI

    用户到线下实体商家消费时有连接商家WiFi需求,传统的方式是商家直接告诉你WiFi密码或者将WiFi密码贴在墙上,你在手机上找到商家对应的WiFi输入密码进行连接(这种方式费时费力,密码复杂点的还容易输入错)。 WIFI 表示这个是一个连接 WiFi 的协议 S 表示后面是 WiFi 的 S

    2024年02月09日
    浏览(7)
  • 小程序-Taro如何实现利用Canvas生成一个二维码以及保存图片

    不多说,直接看代码和文字见解: 第一步:先安装weapp-qrcode,利用一个函数触发drawQrcode的方法生成一个二维码Canvas   到这一步其实你的二维码几乎成型了,但是你还有要把它给展示出来 第二步:调用Taro.canvasToTempFilePath的Taro文档的方法,他是用来将Canvas转换为临时路径的图

    2024年02月12日
    浏览(45)
  • vue批量生成二维码,打印生成的二维码,并批量下载生成的二维码,qrcode

    vue批量生成二维码,打印生成的二维码,并批量下载生成的二维码,qrcode

    通过使用 qrcode 生成二维码, 使用 jszip 打包批量二维码文件, 使用 file-saver 下载打包好的zip文件, 使用 vue-print-nb 打印生成的二维码 配置项: width 二维码宽度 height 二维码高度 errorCorrectionLevel 二维码纠错级别,指二维码被遮挡可以扫出结果的区域比例 color: 7. 打印生成的二

    2024年02月01日
    浏览(14)
  • js生成二维码和解析二维码

    这个整了好久,用的包换了好几次,所以记录一下 生成二维码 解析二维码 然后是两个引入的js reqrcode和qrcode

    2023年04月09日
    浏览(12)
  • Android studio 实现生成二维码和扫描二维码

    Android studio 实现生成二维码和扫描二维码

    效果图 build.gradle(:app)添加依赖 Manifests.xml activity_main.xml MainActivity ScanActivity

    2024年02月10日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包