package com.ruoyi.auction.util;
|
|
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.EncodeHintType;
|
import com.google.zxing.WriterException;
|
import com.google.zxing.common.BitMatrix;
|
import com.google.zxing.qrcode.QRCodeWriter;
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.util.Base64;
|
import java.util.HashMap;
|
|
public class CreateQrCode {
|
|
private static final String base64Url = "data:image/png;base64,";
|
|
/**
|
* 创建二维码
|
*
|
* @param
|
* @param
|
* @return
|
* @throws IOException
|
* @throws WriterException
|
*/
|
public static String createQRCode(String json) throws IOException, WriterException {
|
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
|
HashMap<EncodeHintType, Object> hints = new HashMap<>();
|
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
|
BitMatrix bitMatrix = qrCodeWriter.encode(json, BarcodeFormat.QR_CODE, 600, 600, hints);
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream);
|
Base64.Encoder encoder = Base64.getEncoder();
|
String text = encoder.encodeToString(outputStream.toByteArray());
|
return base64Url + text;
|
}
|
}
|