diff --git a/src/main/java/org/yzr/service/PackageService.java b/src/main/java/org/yzr/service/PackageService.java index 7ac51ea..ef50da6 100644 --- a/src/main/java/org/yzr/service/PackageService.java +++ b/src/main/java/org/yzr/service/PackageService.java @@ -39,9 +39,12 @@ public class PackageService { String tempIconPath = PathManager.getTempIconPath(aPackage); String iconPath = packagePath + File.separator + "icon.png"; String sourcePath = packagePath + File.separator + fileName; + String jpgIconPath = packagePath + File.separator + "icon.jpg"; // 拷贝图标 ImageUtils.resize(tempIconPath, iconPath, 192, 192); + // 生成钉钉发送所需要图片 + ImageUtils.convertPNGToJPG(iconPath, jpgIconPath, 64, 64); // 源文件 FileUtils.copyFile(new File(filePath), new File(sourcePath)); diff --git a/src/main/java/org/yzr/utils/ImageUtils.java b/src/main/java/org/yzr/utils/ImageUtils.java index 42e72b2..f218461 100644 --- a/src/main/java/org/yzr/utils/ImageUtils.java +++ b/src/main/java/org/yzr/utils/ImageUtils.java @@ -58,4 +58,33 @@ public class ImageUtils { e.printStackTrace(); } } + + /** + * 将 PNG 转为 JPG 并指定图片大小 + * @param soureFilePath + * @param targetFilePath + * @param width + * @param height + */ + public static void convertPNGToJPG(String soureFilePath, String targetFilePath, int width, int height) { + try { + //read image file + BufferedImage bufferedImage = ImageIO.read(new File(soureFilePath)); + Image tmp = bufferedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); + // create a blank, RGB, same width and height, and a white background + if (width <= 0 || height <= 0) { + width = bufferedImage.getWidth(); + height = bufferedImage.getHeight(); + } + BufferedImage newBufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + //TYPE_INT_RGB:创建一个RBG图像,24位深度,成功将32位图转化成24位 + + newBufferedImage.createGraphics().drawImage(tmp, 0, 0, Color.WHITE, null); + + // write to jpeg file + ImageIO.write(newBufferedImage, "jpg", new File(targetFilePath)); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/org/yzr/utils/webhook/DingDingWebHook.java b/src/main/java/org/yzr/utils/webhook/DingDingWebHook.java index 348865f..6ece4e1 100644 --- a/src/main/java/org/yzr/utils/webhook/DingDingWebHook.java +++ b/src/main/java/org/yzr/utils/webhook/DingDingWebHook.java @@ -54,8 +54,8 @@ public class DingDingWebHook implements IWebHook { String appInfo = String.format("[%s(%s)更新](%s)", app.getName(), platform, url); // 将图片转为 base64, 内网 ip 钉钉无法访问,直接给图片数据 - String iconPath = PathManager.getFullPath(app.getCurrentPackage()) + "icon.png"; - String icon = "data:image/png;base64," + ImageUtils.convertImageToBase64(iconPath); + String iconPath = PathManager.getFullPath(app.getCurrentPackage()) + "icon.jpg"; + String icon = "data:image/jpg;base64," + ImageUtils.convertImageToBase64(iconPath); String pathInfo = String.format("![%s](%s)", app.getName(), icon); String otherInfo = String.format("链接:[%s](%s) \n\n 版本:%s (Build: %s)", url, url, app.getCurrentPackage().getVersion(), app.getCurrentPackage().getBuildVersion()); String text = appInfo + " \n\n " + pathInfo + " \n\n " + otherInfo;