java生成二维码图片

Java (4) 2024-05-04 21:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说java生成二维码图片,希望能够帮助你!!!。

基于zxing的二维码实现 java

    • pom引入依赖
    • 具体方法如下
    • 方法调用

pom引入依赖

<!-- 二维码生成依赖 -->
		<dependency>
			<groupId>com.google.zxing</groupId>
			<artifactId>core</artifactId>
			<version>${ 
   core.version}</version>
		</dependency>
		<dependency>
			<groupId>com.google.zxing</groupId>
			<artifactId>javase</artifactId>
			<version>${ 
   javase.version}</version>
		</dependency>

具体方法如下

如下两种方式 第一种是直接生成二维码图片
第二种是生成二维码字节数组

package com.wzx.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;

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;

public class QRCodeGeneratorUtils { 
   

	// 生成二维码图片
	/** * @param text 输入二维码的内容 * @param width 二维码的宽度 * @param height 二维码的高度 * @param filePath 存放二维码的路径 * @throws WriterException 异常类型 * @throws IOException 异常类型 */
	private static void generateQRCodeImage(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);

	}

	// 生成二维码字节数组
	public static byte[] getQRCodeImage(String text, int width, int height) throws WriterException, IOException { 
   
		QRCodeWriter qrCodeWriter = new QRCodeWriter();
		BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
		ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
		MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
		byte[] pngData = pngOutputStream.toByteArray();
		return pngData;
	}
}

方法调用

byte[] b = QRCodeGeneratorUtils.getQRCodeImage(text, 200, 200);
String base64Str = Base64Helper.encode(b);
return base64Str;
// 返回的是 Base64 前段接受需要转一下 加上: data:image/png;base64,
//if(res.data.status){
//	 this.imgSrc = 'data:image/png;base64,' + res.data.result; 
//}

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复