当前位置:首页 > 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>

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

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>

生成二维码的简化代码:

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的示例:

java如何生成二维码

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的步骤 下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK版本。Oracle JDK适用于商业用途,OpenJDK是开源版本。选择…

如何删除java

如何删除java

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

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名…

java如何自学

java如何自学

确定学习目标和路径 自学Java需要明确目标,例如开发Web应用、Android应用或后端服务。根据目标选择学习重点,如Java基础、Spring框架或Android开发。制定阶段性计划,从基础语法到…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…