2024-10-25 17:28

如何生成二维码

王姐姐

JavaEE

(249)

(0)

收藏

在Java中生成二维码可以使用一些流行的库,比如ZXing(Zebra Crossing)。ZXing 是一个开源的、多格式的1D/2D条码图像处理库。下面是一个简单的示例,演示如何使用ZXing库在Java中生成二维码。

首先,你需要添加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代码来生成二维码:

package com.wanmait.bootdemo;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;

public class QRCodeGenerator {
    private static final String QR_CODE_IMAGE_PATH = "./qrcode.png";

    public static void main(String[] args) {
        String qrCodeText = "Hello, wanmait!";
        int width = 300;
        int height = 300;

        String filePath = generateQRCodeImage(qrCodeText, width, height, QR_CODE_IMAGE_PATH);

        System.out.println("QR Code generated at " + filePath);
    }

    public static String generateQRCodeImage(String text, int width, int height, String filePath) {
        Map<EncodeHintType, Object> hintMap = new HashMap<>();
        hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");

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

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

            return filePath;

        } catch (WriterException e) {
            System.err.println("Could not generate QR Code, WriterException :: " + e.getMessage());
        } catch (IOException e) {
            System.err.println("Could not generate QR Code, IOException :: " + e.getMessage());
        }

        return null;
    }
}

运行这段代码后,你会在当前目录下看到一个名为qrcode.png的二维码图像文件:

image.png

用微信扫描一下能看到:Hello,wanmait!

如果我把内容改为一个网址:

String qrCodeText = "https://www.wanmait.com";

运行后生成二维码为:

image.png

扫描后会打开万码学堂的网页。

0条评论

点击登录参与评论