新增 QRCode base64 编码形式返回

This commit is contained in:
helixcs 2020-05-19 15:04:21 +08:00
parent 0d4da3bec4
commit addf09488d

View File

@ -42,31 +42,33 @@ public class QrCodeUtil {
/** /**
* 生成代 logo 图片的 Base64 编码格式的二维码 String 形式表示 * 生成代 logo 图片的 Base64 编码格式的二维码 String 形式表示
*
* @param content 内容 * @param content 内容
* @param qrConfig 二维码配置包括长边距颜色等 * @param qrConfig 二维码配置包括长边距颜色等
* @param imageType 图片类型图片扩展名{@link ImgUtil} * @param imageType 图片类型图片扩展名{@link ImgUtil}
* @param logoBase64 logo 图片的 base64 编码 * @param logoBase64 logo 图片的 base64 编码
* @return 图片 Base64 编码字符串 * @return 图片 Base64 编码字符串
*/ */
public static String generateAsBase64(String content, QrConfig qrConfig,String imageType,String logoBase64){ public static String generateAsBase64(String content, QrConfig qrConfig, String imageType, String logoBase64) {
byte[] decode; byte[] decode;
try { try {
decode = Base64.getDecoder().decode(logoBase64); decode = Base64.getDecoder().decode(logoBase64);
}catch (Exception e){ } catch (Exception e) {
throw new QrCodeException(e); throw new QrCodeException(e);
} }
return generateAsBase64(content,qrConfig,imageType,decode); return generateAsBase64(content, qrConfig, imageType, decode);
} }
/** /**
* 生成代 logo 图片的 Base64 编码格式的二维码 String 形式表示 * 生成代 logo 图片的 Base64 编码格式的二维码 String 形式表示
*
* @param content 内容 * @param content 内容
* @param qrConfig 二维码配置包括长边距颜色等 * @param qrConfig 二维码配置包括长边距颜色等
* @param imageType 图片类型图片扩展名{@link ImgUtil} * @param imageType 图片类型图片扩展名{@link ImgUtil}
* @param logo logo 图片的byte[] * @param logo logo 图片的byte[]
* @return 图片 Base64 编码字符串 * @return 图片 Base64 编码字符串
*/ */
public static String generateAsBase64(String content, QrConfig qrConfig,String imageType,byte [] logo){ public static String generateAsBase64(String content, QrConfig qrConfig, String imageType, byte[] logo) {
BufferedImage img; BufferedImage img;
try { try {
img = ImageIO.read(new ByteArrayInputStream(logo)); img = ImageIO.read(new ByteArrayInputStream(logo));
@ -74,21 +76,22 @@ public class QrCodeUtil {
throw new QrCodeException(e); throw new QrCodeException(e);
} }
qrConfig.setImg(img); qrConfig.setImg(img);
return generateAsBase64(content,qrConfig, imageType); return generateAsBase64(content, qrConfig, imageType);
} }
/** /**
* 生成 Base64 编码格式的二维码 String 形式表示 * 生成 Base64 编码格式的二维码 String 形式表示
*
* @param content 内容 * @param content 内容
* @param qrConfig 二维码配置包括长边距颜色等 * @param qrConfig 二维码配置包括长边距颜色等
* @param imageType 图片类型图片扩展名{@link ImgUtil} * @param imageType 图片类型图片扩展名{@link ImgUtil}
* @return 图片 Base64 编码字符串 * @return 图片 Base64 编码字符串
*/ */
public static String generateAsBase64(String content,QrConfig qrConfig,String imageType){ public static String generateAsBase64(String content, QrConfig qrConfig, String imageType) {
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
generate(content,qrConfig,imageType,bos); generate(content, qrConfig, imageType, bos);
byte[] encode = Base64.getEncoder().encode(bos.toByteArray()); byte[] encode = Base64.getEncoder().encode(bos.toByteArray());
return MessageFormat.format("data:image/{0};base64,{1}",imageType,new String(encode)); return MessageFormat.format("data:image/{0};base64,{1}", imageType, new String(encode));
} }
/** /**
* 生成PNG格式的二维码图片以byte[]形式表示 * 生成PNG格式的二维码图片以byte[]形式表示