1、pom依赖:
<!--qrcode-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
2、QrCodeUtil 工具类:
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 QrCodeUtil {
public static byte[] getQRCodeImage(String text, int width, int height) {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
byte[] pngData = new byte[0];
try {
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
try {
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
pngData = pngOutputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
}
} catch (WriterException e) {
e.printStackTrace();
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
}
return pngData;
}
}
3、生成二维码
public ResponseEntity<byte[]> getQRImage(HttpServletRequest request) {
//二维码内置信息
String content = "扫码信息";
byte[] qrcode = QrCodeUtil.getQRCodeImage(content, 360, 360);
// Set headers
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
return new ResponseEntity<byte[]>(qrcode, headers, HttpStatus.CREATED);
}