From a6e1ca0f79a4d5b67b64268c201524f07b8f079e Mon Sep 17 00:00:00 2001 From: sjm <2431685932@qq.com> Date: Mon, 25 Dec 2023 13:01:32 +0800 Subject: [PATCH] QRC --- .../service/serviceImpl/QRCServiceImpl.java | 2 +- .../java/com/lovenav/utils/QRCodeUtil.java | 46 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/lovenav/service/serviceImpl/QRCServiceImpl.java b/src/main/java/com/lovenav/service/serviceImpl/QRCServiceImpl.java index b7c727f..a363a74 100644 --- a/src/main/java/com/lovenav/service/serviceImpl/QRCServiceImpl.java +++ b/src/main/java/com/lovenav/service/serviceImpl/QRCServiceImpl.java @@ -31,7 +31,7 @@ public class QRCServiceImpl implements QRCService{ // 如果表中没有可以插入 if (list.size() == 0) { // 如果icon是url - if(QRCodeUtil.isBase64(collect.getIcon_url())){ + if(QRCodeUtil.notBase64(collect.getIcon_url())){ String icon_url = QRCodeUtil.downloadPicture(collect.getIcon_url()); collect.setIcon_url(icon_url); String url = urlList.getUrl(); diff --git a/src/main/java/com/lovenav/utils/QRCodeUtil.java b/src/main/java/com/lovenav/utils/QRCodeUtil.java index 5556877..636ccdc 100644 --- a/src/main/java/com/lovenav/utils/QRCodeUtil.java +++ b/src/main/java/com/lovenav/utils/QRCodeUtil.java @@ -436,35 +436,31 @@ public class QRCodeUtil { // 对字节数组字符串进行Base64解码并生成图片 //imgFilePath 待保存的本地路径 - public static String GenerateImage(String base64Str, String imgFilePath) { + public static String GenerateImage(String base64Str, String imgFilePath) throws IOException { if (base64Str == null) // 图像数据为空 return null; Base64.Decoder decoder = Base64.getDecoder(); - try { - // Base64解码 - byte[] bytes = decoder.decode(base64Str); - for (int i = 0; i < bytes.length; ++i) { - if (bytes[i] < 0) {// 调整异常数据 - bytes[i] += 256; - } + + // Base64解码 + byte[] bytes = decoder.decode(base64Str); + for (int i = 0; i < bytes.length; ++i) { + if (bytes[i] < 0) {// 调整异常数据 + bytes[i] += 256; } - - //设置图片名称,这个随意 - String date = new Random().nextInt(99999999)+".jpg"; - String fileName = date ; - - // 生成jpg图片 - OutputStream out = new FileOutputStream(imgFilePath +"/" + fileName); - out.write(bytes); - out.flush(); - out.close(); - return (imgFilePath +"/" + fileName); - } catch (Exception e) { - return null; } + //设置图片名称,这个随意 + String date = new Random().nextInt(99999999)+".jpg"; + String fileName = date ; + + // 生成jpg图片 + OutputStream out = new FileOutputStream(imgFilePath +"/" + fileName); + out.write(bytes); + out.flush(); + out.close(); + return (imgFilePath +"/" + fileName); } - public static boolean isBase64(String url){ + public static boolean notBase64(String url){ String reg = "[a-zA-z]+://[^\\s]*"; boolean isMatch = Pattern.matches(reg, url); if(isMatch){ @@ -474,7 +470,7 @@ public class QRCodeUtil { } public static String delete_profix(String base64){ - String delete = "data:image/png;base64,"; + String delete = "data:image/jpg;base64,"; String Base64 = base64; return(base64.replace(delete,"")); } @@ -482,11 +478,13 @@ public class QRCodeUtil { public static void main(String[] args) throws Exception { + String base64 = "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"; + GenerateImage(base64, "src/main/resources/static/icon"); + // String text = "https://www.baidu.com"; //这里设置自定义网站url // String logoPath ="src/main/resources/static/logo/NAV.png"; // String destPath = "src/main/resources/static/qr"; // String url = QRCodeUtil.encode(text, logoPath, destPath, true); -// QRCodeUtil.ImageToBase64("src/main/resources/static/qr/44672405.jpg"); // System.out.println(url); // String base64 = getBase64(url); // System.out.println(base64);