From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java index aed7789..ef5a634 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/ImageUtil.java @@ -2484,4 +2484,95 @@ return null; } + public static InputStream drawActivityShareImg(InputStream banner, float bannerRate, String title, String desc, + InputStream erCode) { + // 璁$畻楂樺害 + + int width = 750; + int height = 116; + int bannerWidth = 640; + int bannerHeight = (int) (bannerWidth / bannerRate); + height += bannerHeight; + height += 524; + + try { + final BufferedImage targetImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + HashMap<Key, Object> mapH = new HashMap<Key, Object>(); + mapH.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);// 鎶楅敮榻柯狅紙鎶楅敮榻挎�诲紑鍏筹級聽聽 + mapH.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);// 鏂囧瓧鎶楅敮榻柯� + + final Graphics2D g2d = (Graphics2D) targetImg.getGraphics(); + g2d.setRenderingHints(mapH); + g2d.setColor(Color.decode("#FF6940")); + g2d.fillRect(0, 0, width, height); + + // 鐢籰ogo + g2d.drawImage(zoomInImage( + ImageIO.read(ImageUtil.class.getClassLoader().getResource("image/activityShare/icon_logo.png")), 59, + 59), 346, 17, null); + // 鐢籦anner鑳屾櫙 + + g2d.setColor(Color.decode("#FFFFFF")); + g2d.fillRect(30, 94, 692, bannerHeight + 22); + + // 鐢籦anner + g2d.drawImage(roundImage( zoomInImage(ImageIO.read(banner), bannerWidth, bannerHeight),20), 55, 116, null); + + // 鐢讳簩缁寸爜鑳屾櫙 + g2d.drawImage( + ImageIO.read( + ImageUtil.class.getClassLoader().getResource("image/activityShare/qrcode_content_bg.png")), + 27, bannerHeight + 116, null); + // 鐢讳簩缁寸爜 + g2d.drawImage(zoomInImage(ImageIO.read(erCode), 230, 230), 260, 116 + bannerHeight + 171, null); + + // 鐢绘枃瀛� + g2d.setColor(Color.decode("#F03143")); + String fontBoldPath = "/usr/share/fonts/yahei_bold.ttf"; + String os = System.getProperty("os.name"); + if (os.toLowerCase().startsWith("win")) { + fontBoldPath = "C:/Users/Administrator/Desktop/fonts/yahei_bold.ttf"; + } + + String fontPath = "/usr/share/fonts/yahei.ttf"; + if (os.toLowerCase().startsWith("win")) { + fontPath = "C:/Users/Administrator/Desktop/fonts/yahei.ttf"; + } + + Font boldFont = Font.createFont(Font.PLAIN, new File(fontBoldPath)).deriveFont(48.0f); + g2d.setFont(boldFont); + FontMetrics fm = g2d.getFontMetrics(boldFont); + int textLength = fm.stringWidth(title); + + g2d.drawString(title, (width - textLength) / 2, 116 + bannerHeight + 50 + 45); + + textLength = fm.stringWidth(desc); + + g2d.drawString(desc, (width - textLength) / 2, 116 + bannerHeight + 50 + 50 + 45); + + Font font = Font.createFont(Font.PLAIN, new File(fontPath)).deriveFont(24.0f); + g2d.setFont(font); + g2d.setColor(Color.decode("#666666")); + fm = g2d.getFontMetrics(font); + textLength = fm.stringWidth("闀挎寜璇嗗埆浜岀淮鐮� 鏌ョ湅璇︽儏"); + + g2d.drawString("闀挎寜璇嗗埆浜岀淮鐮� 鏌ョ湅璇︽儏", (width - textLength) / 2, 116 + bannerHeight + 428+10); + + g2d.dispose(); + + ByteArrayOutputStream aos = new ByteArrayOutputStream(); + ImageIO.write(targetImg, "JPEG", aos); + return new ByteArrayInputStream(aos.toByteArray()); + } catch (Exception e) { + e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + return null; + + } + } -- Gitblit v1.8.0