From ce446f63f1c80e814f7cd94a6abfae61c6d7a22e Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 16 七月 2024 17:32:28 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
---
server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java | 132 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 125 insertions(+), 7 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 8a443f0..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
@@ -4,6 +4,7 @@
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.http.MediaType;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
@@ -43,8 +44,8 @@
System.out.println("缁撴潫锛�" + (System.currentTimeMillis() - starttime) / 1000);
}
- private static final int width = 898;
- private static final int height = 1308;
+ private static final int width = 750;
+ private static final int height = 1194;
/**
* 鐢熸垚鍒嗕韩鍥剧墖
@@ -133,9 +134,7 @@
g2.drawRect(0, 0, width - 1, height - 1);
InputStream inputStream = bufferedImageToInputStream(bi);
return inputStream;
-// String fileName = "8701EAC36DEC405A94C530F0E6796589.jpg"; //ID.nextGUID() + ".jpg";
-// GeneratePicUtil.saveFile(inputStream, filePath+ File.separator+fileName);
-// return filePath + File.separator+ fileName;
+
}
public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) {
@@ -197,7 +196,7 @@
}
}
- public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage) throws IOException {
+ public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage) {
return bufferedImageToInputStream(backgroundImage, "jpg");
}
@@ -209,7 +208,7 @@
* @return
* @throws IOException
*/
- public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage, String format) throws IOException {
+ public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage, String format) {
ByteArrayOutputStream bs = new ByteArrayOutputStream();
try (
ImageOutputStream
@@ -217,6 +216,8 @@
ImageIO.write(backgroundImage, format, imOut);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
return is;
+ }catch (Exception e){
+ return null;
}
}
@@ -267,8 +268,125 @@
}
return resMatrix;
}
+ 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(750, 1194, BufferedImage.TYPE_INT_RGB);
+ //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪)
+ Graphics2D g2 = (Graphics2D) bi.getGraphics();
+ 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, 742+th);
+
+ 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+12, 741+th);
+
+ if(StringUtils.isNotBlank(qrcode)){
+ //涓汉浜岀淮鐮�
+ BufferedImage img2 = getImgIO(qrcode);
+ if(img2!=null){
+ g2.drawImage(img2, 522, 740, 188, 188, null);
+ }
+ g2.setColor(new Color(176, 135, 113));
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 24));
+ g2.drawString("鎵爜娣诲姞濂藉弸", 544, 944+th);
+ }
+
+ //鎵嬫満鍙�
+ BufferedImage img4 = getImgIO(phoneIcon);
+ if(img4!=null){
+ g2.drawImage(img4, 40, 830 , 34, 36, null);
+ }
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+ 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, 980, 34, 36, null);
+ }
+ dealDrawShopAddr(g2,94,973+th,shopaddr);
+ //搴曢儴
+ BufferedImage img6 = getImgIO(logoIcon);
+ if(img6!=null){
+ g2.drawImage(img6, 254, 1126+th-20, 242, 28, null);
+ }
+ 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));
+ }catch (Exception e){
+
+ }return null;
+ }
}
--
Gitblit v1.9.3