Java二维码生成器:ZXing(Zebra Crossing)库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

使用ZXing(Zebra Crossing)在Java中生成二维码



二维码已成为现代网页和移动应用程序不可或缺的一部分。它们可以快速传输链接、联系信息、文本信息等。在Java世界中,用于处理二维码的最流行且最稳定的库之一是ZXing(Zebra Crossing)。



在本文中,我们将详细介绍如何将ZXing集成到您的项目中,创建简单的二维码,自定义其外观并保存到文件。无论您是新手还是经验丰富的开发者,希望为Java应用程序添加二维码生成功能,本文都将为您提供帮助。



什么是ZXing?



ZXing(发音为"zebra crossing")是一个用于处理一维和二维条码的开源库。它使用Java编写,支持多种格式:二维码、Data Matrix、Aztec、PDF417等。主要功能包括:



  • 从文本、URL、联系人等生成(创建)二维码。
  • 从图像中读取(解码)二维码。
  • 自定义颜色、尺寸、纠错级别。
  • 输出为多种图形格式(PNG、JPEG、SVG)。
  • 支持Java SE、Android以及其他JVM语言(Kotlin、Scala)。


该库由社区积极维护,并被全球数千个项目使用。



将ZXing集成到项目中



将ZXing添加到项目中最简单的方法是使用Maven或Gradle构建系统。如果您使用Maven,请在pom.xml文件中添加以下依赖:



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


对于Gradle(build.gradle):



implementation 'com.google.zxing:core:3.5.3'implementation 'com.google.zxing:javase:3.5.3'


core模块包含用于处理条码的核心类,而javase模块则包含Java SE的辅助工具(例如,用于图像处理)。



创建简单的二维码



让我们看一个基本示例:生成包含文本字符串"Hello, PythonLib!"的二维码。



import com.google.zxing.BarcodeFormat;import com.google.zxing.WriterException;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.QRCodeWriter;

import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;

public class QRCodeGenerator { public static void main(String[] args) { String text = "Hello, PythonLib!"; int width = 300; int height = 300;

QRCodeWriter qrCodeWriter = new QRCodeWriter(); try { BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);

BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); } }

File outputFile = new File("qrcode.png"); ImageIO.write(qrImage, "png", outputFile); System.out.println("二维码已保存到文件:" + outputFile.getAbsolutePath());

} catch (WriterException | IOException e) { e.printStackTrace(); } }}


此代码创建一个300x300像素的黑白二维码,并将其保存到qrcode.png文件中。



配

推荐