当前位置:首页 > Java

java如何生成二维码

2026-03-03 11:44:25Java

生成二维码的基本方法

在Java中生成二维码可以通过第三方库实现,常用的库包括ZXing(Zebra Crossing)和QRGen。ZXing是一个功能强大的开源库,支持多种条形码和二维码的生成与解析。

使用ZXing库生成二维码

确保项目中已添加ZXing依赖。对于Maven项目,在pom.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>

生成二维码的核心代码示例:

java如何生成二维码

import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;

public class QRCodeGenerator {
    public static void generateQRCode(String text, int width, int height, String filePath) throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
        Path path = FileSystems.getDefault().getPath(filePath);
        MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
    }
}

使用QRGen简化操作

QRGen是基于ZXing的封装库,提供更简洁的API。添加QRGen依赖:

<dependency>
    <groupId>io.github.g0dkar</groupId>
    <artifactId>qrcode-kotlin-jvm</artifactId>
    <version>3.2.0</version>
</dependency>

生成二维码的简化代码:

java如何生成二维码

import io.github.g0dkar.qrcode.QRCode;
import java.io.FileOutputStream;

public class SimpleQRGen {
    public static void createQR(String data, String outputPath) throws Exception {
        new QRCode(data).render().writeTo(new FileOutputStream(outputPath));
    }
}

自定义二维码样式

通过ZXing可以调整二维码的颜色、边距等属性。例如修改颜色和边距:

import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;

public class CustomQRCode {
    public static BufferedImage createCustomQR(String text, int size, int margin) throws WriterException {
        Map<EncodeHintType, Object> hints = new HashMap<>();
        hints.put(EncodeHintType.MARGIN, margin);
        QRCodeWriter writer = new QRCodeWriter();
        BitMatrix matrix = writer.encode(text, BarcodeFormat.QR_CODE, size, size, hints);
        return MatrixToImageWriter.toBufferedImage(matrix);
    }
}

生成二维码并嵌入Logo

在二维码中心嵌入Logo的示例:

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

public class QRCodeWithLogo {
    public static void addLogo(BufferedImage qrImage, String logoPath, String outputPath) throws IOException {
        BufferedImage logo = ImageIO.read(new File(logoPath));
        Graphics2D g = qrImage.createGraphics();
        int x = (qrImage.getWidth() - logo.getWidth()) / 2;
        int y = (qrImage.getHeight() - logo.getHeight()) / 2;
        g.drawImage(logo, x, y, null);
        g.dispose();
        ImageIO.write(qrImage, "PNG", new File(outputPath));
    }
}

注意事项

  • 二维码尺寸不宜过小,建议至少200x200像素以保证可扫描性。
  • 纠错级别可通过EncodeHintType.ERROR_CORRECTION设置,可选L(7%)、M(15%)、Q(25%)、H(30%)。
  • 避免在二维码中存储敏感信息,因其可被任何人扫描。

标签: 二维码java
分享给朋友:

相关文章

如何删除java

如何删除java

卸载 Java 的步骤 Windows 系统: 打开控制面板,选择“程序和功能”或“卸载程序”,在列表中找到 Java 相关条目(如“Java Runtime Environment”或“Java D…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适…

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io.Fi…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过…