springboot 生成二维码
时间: 2023-07-12 08:41:31 浏览: 209
要在Spring Boot中生成二维码,你可以使用ZXing库。ZXing是一个开放源码的条形码和二维码生成库,它支持多种编程语言,包括Java。
首先,你需要在你的项目中添加ZXing依赖。你可以在Maven中添加以下依赖:
```xml
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.1</version>
</dependency>
```
然后,你可以使用以下代码在Spring Boot中生成二维码:
```java
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import javax.imageio.ImageIO;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
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;
@RestController
public class QRCodeController {
@GetMapping(value = "/qrcode/{text}", produces = MediaType.IMAGE_PNG_VALUE)
public ResponseEntity<BufferedImage> generateQRCode(@PathVariable String text) throws WriterException {
int width = 300;
int height = 300;
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ImageIO.write(bufferedImage, "png", baos);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseEntity.ok().body(bufferedImage);
}
}
```
在上面的代码中,我们使用QRCodeWriter类生成二维码,然后将其转换为BufferedImage并返回给客户端。请注意,我们还设置了响应的MediaType为“image/png”。
你可以通过以下URL在浏览器中访问该REST API生成二维码:
```
http://localhost:8080/qrcode/your-text-here
```
你可以将“your-text-here”替换为你要生成二维码的文本。
阅读全文