Generating QR Code in Java2025年5月3日 | 阅读 6 分钟 QR 码是 快速响应码 (Quick Response code) 的缩写。它是条形码的替代品,或者说它是一种二维条形码。它包含小方块的矩阵,信息存储在其中。它的工作方式与条形码相同。它可以被成像设备读取。如今,它在各个领域得到了广泛应用,例如地理位置、产品、车辆跟踪等。在本节中,我们将学习如何使用 ZXing 库在 Java 中生成和读取 QR 码。 QR 码由白色背景上的黑色方块组成的网格排列,可被成像设备读取,称为QR 码。 QR 码的优点是智能手机可以扫描它。我们无需携带任何手持设备进行扫描。它用于存储文本、网页、URL 等信息。它使用以下四种标准化编码模式:
这些标准编码模式可以有效存储数据。快速响应系统因其快速的可读性和比标准 UPC 条形码更大的存储容量而在汽车行业之外流行起来。 QR 码如何工作?QR 码由包含编码数据的模块(黑白方块)组成。模块按行和列排列,称为数据矩阵。数据位的放置从右下角开始,向上移动,并在到达顶部时改变位置。 我们通过成像设备(如摄像头)扫描 QR 码。扫描后,它使用Reed-Solomon 纠错码处理 QR 码,直到图像被解释。之后,数据从存储在代码的水平和垂直分量的模式中提取出来。下图描述了 QR 码的结构及其元素。 QR 码组件QR 码主要有两个组件:功能模式和编码区域。这些组件进一步细分为小组件。下图描绘了 QR 码的组件。 ![]() 下表描述了每个组件及其功能。
纠错级别QR 码即使在一定程度损坏(高达 30%)的情况下也可以被扫描。Reed-Solomon 纠错算法使这成为可能。需要注意的是,如果我们添加纠错,它会增加 QR 码中的数据块数量。因此,我们需要根据要求调整纠错级别。有四个纠错级别:
以下 QR 码代表7%的纠错能力。 ![]() QR 码可以存储多少数据?QR 码的数据存储容量取决于以下三项:
版本表示符号的尺寸(即每边 4 × 版本号 + 17 个点)。
注意:随着版本号的变化,行数和列数也随之变化。因此,存储的信息量更大。还值得注意的是,QR 码包含相等数量的行和列。行数和列数取决于版本号。生成 QR 码要在 Java 中生成 QR 码,我们需要使用一个名为ZXing (Zebra Crossing) 的第三方库。它是一个流行的 API,允许我们处理 QR 码。借助该库,我们可以轻松生成和读取 QR 码。在继续 Java 程序之前,我们需要将 ZXing 库添加到项目中。我们可以从官方网站 下载。 下载后,将其添加到类路径中。或者在 pom.xml 文件中添加以下依赖项。 让我们创建一个生成 QR 码的 Java 程序。 GenerateQrCode.java 输出 ![]() 当我们运行上面的 Java 程序时,它会在指定的目录中生成以下 QR 码。 ![]() 读取 QR 码让我们通过一个我们上面生成的 Java 程序来读取 QR 码。 ReadQrCode.java 输出 ![]() 我们看到我们得到了与上一个程序中存储在 QR 码中的相同数据。 |
java.time.chrono.IsoChronology 类有一个 eras() 方法。使用 IsoChronology 类可以检索属于此特定 Iso 日历的所有时代。语法:public List eras() 参数:此方法不接受任何参数。返回值:属于...
阅读 2 分钟
Java &0XFF 示例 为了理解 &0XFF(或 &0xff),我们必须先了解按位 AND 运算符 (&),以及从十六进制到二进制的转换(反之亦然),以及从十进制到二进制的转换(反之亦然)。在继续本节之前,我们还应该了解移位运算符。按位右移运算符...
阅读 3 分钟
假设我们有一个正整数 p,并且我们希望对包含 1 到 2^p - 1 的整数 nums 数组执行操作。在对数组元素执行任意数量的特定操作后,目标是...
5 分钟阅读
字符串排列是计算机科学中一个引人入胜的问题,它涉及重新排列字符串的字符以创建所有可能的唯一组合。在 Java 中,高效地解决此问题需要对字符串操作和递归有扎实的理解。在本节中,我们将深入探讨各种...
5 分钟阅读
在本教程中,我们将学习 Java 中的 NullPointerException。NullPointerException 是一个运行时异常。Null 是一种特殊类型的值,可以赋给对象的引用。任何时候,当一个人试图使用一个引用...
7 分钟阅读
Java IntSummaryStatistics 类的 getMax() 函数用于检索此 IntSummaryStatistics 中的最大记录数。语法:public int getMax() 参数:此方法不接受任何参数。返回值:此 IntSummaryStatistics 中的最大记录数由...返回。
阅读 2 分钟
在 Java 中,数字猜测游戏是一个基本游戏,其中计算机生成一个随机数,玩家在特定范围内尝试猜中它。以下是它的工作原理的快速概述:游戏开始时,计算机生成一个随机数...
5 分钟阅读
骰子游戏几个世纪以来一直吸引着玩家,散发着机遇和兴奋的光环。技术的出现使我们能够将这些体验带入数字领域,创造机会来制作引人入胜的模拟,捕捉掷骰子的精髓。在本节中,我们将...
5 分钟阅读
Java 是一种通用且广泛使用的编程语言,以其平台独立性和健壮性而闻名。它被用于各种应用中,从 Web 开发到移动应用创建,甚至在大规模的企业系统中。要掌握 Java 的精髓,掌握...
阅读 6 分钟
统计道路上通过的汽车数量问题只是众多典型算法问题之一,其实际目标是确定在同一条道路上朝相反方向行驶的汽车的有效对的总数。更具体地说,...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India