ZXing 生成二维码

ZXing的解释:
在这里插入图片描述
zxing和java,引入jar包

<!-- 谷歌二维码生成jar -->
			<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
			<dependency>
				<groupId>com.google.zxing</groupId>
				<artifactId>core</artifactId>
				<version>3.4.0</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
			<dependency>
				<groupId>com.google.zxing</groupId>
				<artifactId>javase</artifactId>
				<version>3.4.0</version>
			</dependency>

生成二维码字节

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import java.util.Map;

/**
 * 谷歌二维码生成工具类
 */
public class ZXingUtils {

    /**
     * 生成字节码
     *
     * @param text
     * @param width
     * @param height
     * @return
     * @throws Exception
     */
    public static byte[] getQRCodeImage(String text, int width, int height) throws Exception {
        Map<EncodeHintType, Object> hints = new HashMap<>();
        //排错率  L<M<Q<H
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
        //编码
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        //外边距:margin
        hints.put(EncodeHintType.MARGIN, 0);
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        // 第一个参数是内容,或者网址,第二个参数是生成的类型,当前类型是二维码,也可以是条形码,后面是长度宽度,最后是声明的参数map
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height, hints);
        ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
        // 使用此方法保存至输出流中
        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
        //获取内存缓冲区中的数据
        return pngOutputStream.toByteArray();
    }

}
### 如何使用 ZXing 生成二维码 #### 使用 Java 和 ZXing生成二维码 为了在项目中集成 ZXing生成二维码,首先需要引入 ZXing 的依赖项。对于 Maven 用户,在 `pom.xml` 文件中添加如下依赖: ```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> ``` 接着定义一个名为 `generateQRCodeImage` 的方法来创建二维码图像。此函数接收四个参数:要编码的文字内容 (`text`)、期望的宽度 (`width`)、高度 (`height`) 及保存位置 (`filePath`)。 ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import java.io.IOException; import java.nio.file.FileSystems; import java.util.HashMap; import java.util.Map; public class QRCodeGenerator { private static final String QR_CODE_IMAGE_PATH = "./MyQRCode.png"; public static void main(String[] args) { String data = "https://www.example.com"; int width = 300; int height = 300; try { generateQRCodeImage(data, width, height); System.out.println("QR Code has been generated successfully."); } catch (WriterException | IOException e) { System.err.println(e.getMessage()); } } private static void generateQRCodeImage(String text, int width, int height) throws WriterException, IOException { Map<EncodeHintType, Integer> hints = new HashMap<>(); hints.put(EncodeHintType.MARGIN, 1); // 设置边距 QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height, hints); Path path = FileSystems.getDefault().getPath(QR_CODE_IMAGE_PATH); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); } } ``` 上述代码展示了如何利用 ZXing 库中的 `QRCodeWriter` 类构建位矩阵(`BitMatrix`) 并通过 `MatrixToImageWriter` 将其转换成 PNG 图像文件[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值