From 4f7ffc5b5525c0a4a463c530d0fe18060627740d Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 16 七月 2024 16:04:47 +0800 Subject: [PATCH] 提交 --- server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java | 102 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 72 insertions(+), 30 deletions(-) diff --git a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java index c467fde..a09dcac 100644 --- a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java +++ b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java @@ -45,7 +45,7 @@ } private static final int width = 750; - private static final int height = 1140; + private static final int height = 1194; /** * 鐢熸垚鍒嗕韩鍥剧墖 @@ -268,78 +268,120 @@ } return resMatrix; } - public static InputStream generateUserCardImg(String imgurl, String qrcode, String name,String type, String phone, String shopaddr, String shopname,String phoneIcon,String addrIcon) { + public static InputStream generateUserCardImg(String imgurl, String qrcode, String name,String type, String phone + , String shopaddr, String shopname + ,String phoneIcon + ,String addrIcon + ,String shopIcon + ,String logoIcon) { - BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + BufferedImage bi = new BufferedImage(750, 1194, BufferedImage.TYPE_INT_RGB); //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪) Graphics2D g2 = (Graphics2D) bi.getGraphics(); - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); - g2.fillRect(0, 0, width, height); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g2.fillRect(0, 0, 750, 1194); //鑳屾櫙鍥剧墖 BufferedImage img1 =getImgIO(imgurl); if(img1!=null){ + int w = img1.getWidth(); + int h = img1.getHeight(); + int h1 = (int)((double)w *700/750); + int w1 = (int)((double)h *750/700); + if(h>h1){ + h = h1; + } + if(w>w1){ + w = w1; + } + img1 = img1.getSubimage(0,0,w,h); g2.drawImage(img1, 0, 0, 750, 700, null); }else{ g2.setColor(new Color(102, 102, 102, 1)); g2.drawRect( 0, 0, 750, 700); } - //鍟嗗搧鍚嶇О + int th = 30; + //鍚嶇О if(name.length()>5){ name = name.substring(0,5)+"..."; } g2.setColor(Color.black); g2.setFont(new Font("榛戜綋", Font.PLAIN, 40)); - g2.drawString(name, 40, 990-242); + g2.drawString(name, 40, 742+th); - int w = 40+ name.length()*40; - g2.setColor(Color.GRAY); + int w = 60+ name.length()* 40; + g2.setColor(new Color(176, 135, 113)); + g2.drawRoundRect(w,744-10,85,50,15,15);//鐢讳竴涓渾瑙掔煩褰� + + g2.setColor(new Color(176, 135, 113)); g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); - g2.drawString(type, w, 990-242); + g2.drawString(type, w+12, 741+th); + if(StringUtils.isNotBlank(qrcode)){ //涓汉浜岀淮鐮� BufferedImage img2 = getImgIO(qrcode); if(img2!=null){ - g2.drawImage(img2, 522, 982-242, 188, 188, null); + g2.drawImage(img2, 522, 740, 188, 188, null); } - - g2.setColor(Color.GRAY); + g2.setColor(new Color(176, 135, 113)); g2.setFont(new Font("榛戜綋", Font.PLAIN, 24)); - g2.drawString("鎵爜娣诲姞濂藉弸", 544, 1186-242); + g2.drawString("鎵爜娣诲姞濂藉弸", 544, 944+th); } + //鎵嬫満鍙� BufferedImage img4 = getImgIO(phoneIcon); if(img4!=null){ - g2.drawImage(img4, 40, 1072-28-242, 34, 36, null); + g2.drawImage(img4, 40, 830 , 34, 36, null); } g2.setColor(Color.GRAY); g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); - g2.drawString(phone, 94, 1072-242); + g2.drawString(phone, 94, 828+th); + //闂ㄥ簵鍚嶇О + BufferedImage img5 = getImgIO(shopIcon); + if(img4!=null){ + g2.drawImage(img5, 40, 904 , 34, 36, null); + } + if(shopname.length()>11){ + shopname = shopname.substring(0,11)+"..."; + } + g2.setColor(Color.GRAY); + g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); + g2.drawString(shopname, 94,901+th); + BufferedImage img3 = getImgIO(addrIcon); if(img3!=null){ - g2.drawImage(img3, 40, 1142-28-242, 34, 36, null); + g2.drawImage(img3, 40, 980, 34, 36, null); } - if(shopaddr.length()>12){ - shopaddr = shopaddr.substring(0,12)+"\n"+shopaddr.substring(12); - } - //鍦板潃 - g2.setColor(Color.GRAY); - g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); - g2.drawString(shopaddr, 94, 1142-242); - + dealDrawShopAddr(g2,94,973+th,shopaddr); //搴曢儴 - if(shopname.length()>15){ - shopname = shopname.substring(0,15)+"..."; + + BufferedImage img6 = getImgIO(logoIcon); + if(img6!=null){ + g2.drawImage(img6, 254, 1126+th-20, 242, 28, null); } - g2.setColor(Color.GRAY); - g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); - g2.drawString(shopname, 180, 1300-242); InputStream inputStream = bufferedImageToInputStream(bi); return inputStream; } + private static void dealDrawShopAddr(Graphics2D g2, int x, int y, String shopaddr) { + int num =shopaddr.length() / 13; + for (int i = 0; i <= num; i++) { + String temp =""; + if(shopaddr.length() >= (i+1)*13){ + temp = shopaddr.substring(i*13,(i+1)*13); + }else{ + temp=shopaddr.substring( i*13); + } + //鍦板潃 + g2.setColor(Color.GRAY); + g2.setFont(new Font("榛戜綋", Font.PLAIN, 30)); + g2.drawString(temp, x, y+i*40); + } + } + private static BufferedImage getImgIO(String imgurl) { try { return ImageIO.read(new URL(imgurl)); -- Gitblit v1.9.3