实现一个简单的二维码生成器,对网址和信息转换成二维码,使用zxing库实现入图:
代码如下:
0.加依赖
<!-- hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.11</version>
</dependency>
<!--zxing生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.1</version>
</dependency>
<!-- zxing生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.5.1</version>
</dependency>
1.写配置
@Configuration
public class QrCodeConfiguration {
@Bean
public QrConfig qrConfig() {
QrConfig config = new QrConfig();
// 设置二维码前景色
config.setForeColor(Color.BLACK);
// 设置二维码的背景色
config.setBackColor(Color.WHITE);
//config.setImg() 设置图片
//config.setHeight();设置高度
// config.setWidth(); 设置宽度
//config.setCharset();
//这个方法用于设置二维码的编码,默认UTF-4
//config.setMargin();
//这个方法用于设置二维码的边缘空白区域(或称为边距),边界区域是二维码图像周围的空白区域,用于防止图像被裁剪或覆盖
//config.setQrVersion()
//这个方法用于设置二维码的版本,二维码版本表示二维码的大小和容纳数据的能力。较高的版本意味着更大的二维码,并且可以容纳更多的数据
//config.setShapeHint()
//这个方法用于设置二维码的形状提示,形状提示是指帮助识别二维码的提示信息,通常用于在扫描二维码时指导扫描设备正确方向
//config.setRatio()
//这个方法用于设置二维码和内部图像的宽高比例
return config;
}
}
2.写接口
@RestController
@RequestMapping("qr")
@Api(tags = "二维码生成")
public class QrCodeServlet{
//注入对应的bean
@Resource
QRService qrService;
/**
* 生成图像
*
* @param content 内容
* @param response 响应
* @throws IOException ioexception
*/
@GetMapping("/stream")
@ApiOperation("输入信息导出二维码")
@ApiImplicitParam(name = "content",value = "文本信息")
public void generateImage(String content, HttpServletResponse response) throws IOException {
response.setHeader("content-type", "image/png");
qrService.generateToStream(content, response);
}
/**
* 生成图像base64
*
* @param content 内容
* @return {@link R}<{@link String}>
*/
@GetMapping("base64")
@ApiOperation("输入信息导出二维码(base64格式)")
@ApiImplicitParam(name = "content",value = "文本信息")
public R generateImageToBase64(String content) {
String base64 = qrService.generateBase64(content);
return R.ok(base64);
}
}
这样一个简单的springboot网页二维码生成器就实现好了