【Java】几种常用生成二维码的库

在Java端生成包含URL信息的二维码,除了ZXing (Zebra Crossing) 库之外,还有几种其他工具包也可以使用。以下是几种常用的Java库和框架,可以生成二维码:

  1. ZXing (Zebra Crossing)

    • 一个广泛使用的开源库,支持生成和解析多种类型的条形码,包括二维码。
    • 官方文档和下载地址:ZXing
  2. QRGen

    • 基于ZXing的一个简单易用的库,提供了一些便捷的方法来生成二维码。
    • 官方文档和下载地址:QRGen
  3. QRCodeGenerator

    • 一个简单的库,专注于生成二维码。
    • 官方文档和下载地址:QRCodeGenerator
  4. QR Code Monkey

    • 一个在线工具,但也提供了API接口,可以在Java应用中调用来生成二维码。
    • 官方文档和下载地址:QR Code Monkey

下面是使用ZXing和QRGen库生成包含URL信息的二维码的示例代码:

使用ZXing生成包含URL信息的二维码

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
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.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;

public class ZXingQRCodeGenerator {

    public static void generateQRCodeImage(String text, int width, int height, String filePath) throws WriterException, java.io.IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        Map<EncodeHintType, Object> hintMap = new HashMap<>();
        hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        hintMap.put(EncodeHintType.MARGIN, 1); // default is 4

        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height, hintMap);

        Path path = FileSystems.getDefault().getPath(filePath);
        MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
    }

    public static void main(String[] args) {
        try {
            generateQRCodeImage("https://www.example.com", 350, 350, "ZXingQRCode.png");
            System.out.println("ZXing QR Code generated successfully.");
        } catch (WriterException | java.io.IOException e) {
            System.err.println("Could not generate QR Code, " + e.getMessage());
        }
    }
}

使用QRGen生成包含URL信息的二维码

首先,添加QRGen依赖(Maven或者Gradle):

Maven:

<dependency>
    <groupId>net.glxn</groupId>
    <artifactId>qrgen</artifactId>
    <version>2.6.0</version>
</dependency>

Gradle:

implementation 'net.glxn:qrgen:2.6.0'

然后使用以下代码生成二维码:

import com.google.zxing.WriterException;
import net.glxn.qrgen.javase.QRCode;

import java.io.File;
import java.io.IOException;

public class QRGenQRCodeGenerator {

    public static void generateQRCodeImage(String text, int width, int height, String filePath) throws IOException {
        File qrFile = QRCode
                .from(text)
                .withSize(width, height)
                .file();

        qrFile.renameTo(new File(filePath));
    }

    public static void main(String[] args) {
        try {
            generateQRCodeImage("https://www.example.com", 350, 350, "QRGenQRCode.png");
            System.out.println("QRGen QR Code generated successfully.");
        } catch (IOException e) {
            System.err.println("Could not generate QR Code, " + e.getMessage());
        }
    }
}

这两种方法都能生成包含URL信息的二维码,选择使用哪个库取决于你的具体需求和偏好。ZXing功能全面,适合需要更多自定义和控制的场景,而QRGen则提供了更简单的接口,适合快速生成二维码的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值