代码生成二维码

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


前言

Zxing Zxing 是一个开源的 Java 二维码扫描和生成库,由美国 Google 公司的一位开发者 Sean Owen 在 2006 年开发并发布,它是用 Java 语言编写的,可以方便地集成到各种应用中。
项目地址为:https://github.com/zxing/zxing


使用步骤

xml

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.4.1</version>
</dependency>

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.4.1</version>
</dependency>

生成二维码

在进行二维码生成前,需要先创建一个 MultiFormatWriter 对象,并使用 encode() 方法将文本信息转换为二维码矩阵。然后再使用 MatrixToImageWriter 类的 writeToStream() 方法将矩阵对应的二维码图片写入输出流中。

代码实现如下:

    //config中包含的一些二维码信息
    Map<EncodeHintType, Object> config = new HashMap<>();
    config.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    config.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
    config.put(EncodeHintType.MARGIN, 0);
    //核心代码(高度、宽度就不说了)
    BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, config);

解释一下里面config中的信息

  • CHARACTER_SET: 指定编码格式,默认值为 UTF-8。
  • ERROR_CORRECTION: 指定纠错等级,包括四个等级:L(约可纠错 7% 的数据码字)、M(约可纠错 15% 的数据码字)、Q(约可纠错 25% 的数据码字)和 H(约可纠错 30% 的数据码字),默认值为 M。
  • MARGIN: 指定二维码图片的边距,默认值为 0,即不留白边。

二维码转url

因为生成的二维码是以图片的形式输出,而如果想要用户看到二维码就需要我们将二维码转换为url给到前端进行渲染,可以参考图床搭建文章,进行图片上传。

那么新的问题又来了,生成的二维码需要存储在哪里?

  • 在之前我让他指定了一个路径进行输出,如下代码:
  Path path = Paths.get("qrcode.png");
  MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);

path是我指定的在这个当前项目中的位置去生成图片qrcode.png,那么在调用writeToPath中,指定生成的路径path的位置

然后我们将这个位置的图片在传到生成url地址的api中,最后生成网络url地址去返回给前端

qrCodeUrl = uploadFileMinio(qrCodeLocalityUrl);

  • 那么这样操作虽然解决了问题,那么如果我们每次都要去将二维码保存在本地,是否造成了资源的浪费,这个时候我又想到了使用内存去将二维码生成的直接放在内存中上传。代码实现如下:
    //            转化对象为BufferedImage
               BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
    //           将image对象写入到ByteArrayOutputStream中
               ByteArrayOutputStream os = new ByteArrayOutputStream();
               ImageIO.write(image, "png",os);
    //            讲写入内存的对象写出到ByteArrayInputStream中
               ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
    //            最后调用上传图片的方法上传文件
               Boolean upload = minioUtil.upload(is, "fineName", minioConfig.getBucketName());
               if (upload) {
                   qrCodeUrl =  minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + "fineName";
               }
    

总结

以上就是使用 Zxing 进行二维码扫描和生成的基本步骤。当然,针对不同场景,可能还需要设置一些参数和处理一些异常等操作。文章来源地址https://www.toymoban.com/news/detail-438546.html

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

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

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

相关文章

  • 微信小程序使用canvas画布生成二维码海报分享图片(完整示例代码)

    canvas.js //获取应用实例 const app = getApp() Page({ /** 页面的初始数据 */ data: { // canvas _width: 0, //手机屏宽 _heigth: 0,//手机屏高 swiperHeight: 300,//主图图片高度 canvasType: false,//canvas是否显示 loadImagePath: ‘’,//下载的图片 imageUrl: ‘https://cos.myfaka.com/car/service/1.jpg’, //主图网络路径 codeU

    2024年04月12日
    浏览(99)
  • 基于Vue3实现扫码枪扫码并生成二维码的代码解析

    在本文中,我们将介绍如何使用Vue3实现扫码枪扫描条形码或二维码,并将其转换为二维码的过程。这个过程将涉及到以下步骤: 在Vue3项目中安装和导入 vue-qrcode-reader 插件。 创建一个Vue3组件,用于渲染二维码。 在组件中实现扫码枪扫描条形码或二维码的逻辑。 将扫描到的

    2024年02月09日
    浏览(59)
  • WPF使用Zxing.net生成二维码

    在Nuget引用Zxing.net 包和ZXing.Net.Bindings.Windows.Compatibility包即可。

    2024年02月12日
    浏览(41)
  • spring boot 通过zxing生成二维码

    Spring Boot是一个基于Spring框架的快速开发、便捷部署的微服务框架。而ZXing是一个功能强大的开源库,用于生成和解析二维码。在Spring Boot应用中,您可以整合ZXing库来方便地生成二维码。 接下来,创建一个Spring Boot服务,并编写一个控制器类来生成二维码。以下是一个简单的

    2024年01月21日
    浏览(51)
  • 基于ZXing.NET实现的二维码生成和识别客户端

    ZXing.Net 的一个可移植软件包,是一个开源的、多格式的1D/2D条形码图像处理库,最初是用Java实现的。已经过大量优化和改进,它已经被手动移植。它与.Net 2.0、.Net 3.5、.Net 4.x、.Net 5.x、.Net 6.x、.Net 7.x、Windows RT类库和组件、UWP、.Net Standard 1.x和2.0x、.Net Core App 3.x、Silverlight 4、

    2024年02月08日
    浏览(46)
  • 在Spring Boot中使用ZXing开源库生成带有Logo的二维码

    在上一篇文章的基础上,我们将进一步扩展功能,实现在生成的二维码中嵌入Logo图片。这样的二维码更具个性化和识别度。让我们逐步完成这个功能。 首先,准备一张用作Logo的图片,并确保它的大小适中。将Logo图片放置在项目的资源文件夹中,例如 src/main/resources 。 在 Q

    2024年01月24日
    浏览(53)
  • 二维码生成解析用ZXing.NET就够了,不要再引一堆生成和解析库了

    ZXing.NET 是一个开源的、功能强大的二维码处理库,它能够对二维码进行解码(读取信息)和编码(生成二维码)。ZXing 是 \\\"Zebra Crossing\\\" 的缩写,是一个跨平台的、用于解码和生成条形码和二维码的库。以下是一些 ZXing.Net 的主要功能通过实例讲解。 这些示例演示了 ZXing.Net 的

    2024年02月04日
    浏览(43)
  • Android之 Zxing二维码详解

    一 简介 1.1 ZXing 目前Android扫描二维码,条形码主要用google官方的工具Zxing,支持扫码,相册解码,生成带logo的二维码等功能  Zxing github 示例地址:https://github.com/zxing/zxing 1.2 ZBar 由于zxing是基于java编写的,扫码速度和解析上可能没那么快,但大部分场合足够用。也有基于c/

    2024年02月08日
    浏览(43)
  • zxing二维码位矩阵转换成Bitmap位图

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。 该项目可实现的条形码编码和解码。我们支持以下格式: UPC-A,UPC-E EAN-8,EAN-13 39码 93码 代码128 创新及科

    2023年04月11日
    浏览(50)
  • C#中轻松实现二维码和条形码识别:OpenCvSharp和ZXing详细教程

      概述: 本教程使用OpenCvSharp和ZXing库,详细介绍了在C#中识别二维码和条形码的步骤。通过导入必要的命名空间、加载图像,并使用ZXing库进行二维码和条形码的识别,提供了清晰的示例代码。这方便了开发人员在项目中集成二维码和条形码识别功能。 要使用OpenCvSharp来分别

    2024年03月09日
    浏览(80)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包