在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的二维码图像文件:

用微信扫描一下能看到:Hello,wanmait!
如果我把内容改为一个网址:
String qrCodeText = "https://www.wanmait.com";
运行后生成二维码为:

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

0条评论
点击登录参与评论