由于时代科学的进步,二维码已经和我们的生活密不可分,在开发过程中往往会涉及到和二维码相关的开发,今天这篇文章就教会大家如何使用zxing.jar包生成二维码
下面这个就是百度上面自带的一个生成二维码的功能,那他是怎么实现这个功能的呢?

1.准备工作
1)创建一个maven项目,在pom.xml中导入zxing的依赖包
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> <exclusions> <exclusion> <artifactId>core</artifactId> <groupId>com.google.zxing</groupId> </exclusion> </exclusions> </dependency>
2)创建测试类TestController,代码如下
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
@RestController
public class TestController {
// 生成二维码
@RequestMapping("/getCode")
public void getCode(HttpServletResponse response){
// 二维码内容
String contents = "百度一下,你就知道";
// 表示是二维码
BarcodeFormat qrCode = BarcodeFormat.QR_CODE;
// 二维码宽度
int width = 300;
// 二维码高度
int height = 300;
// 返回的图片格式
String format = "png";
response.setContentType("image/png");
try {
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
// 设置二维码编字符集
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
// 设置二维码的外间距
hints.put(EncodeHintType.MARGIN, 10);
// 设置二维码容错级别
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
// 创建二维码对象
BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, qrCode, width, height, hints);
// 输出二维码
MatrixToImageWriter.writeToStream(bitMatrix, format, response.getOutputStream());
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.测试二维码功能
启动项目,请求我们所写的测试接口

这样我们就完成了一个和百度自带生成二维码的一样的功能



















