From 8ae611538a5dfd3ad2872e5b1043376d1aa19a29 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 26 Mar 2021 17:34:15 +0800
Subject: [PATCH] 包裹图片长宽返回

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java             |   39 +++++++++++++++++++++++++++++++++------
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java          |    2 +-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java |   11 ++++++++---
 3 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
index eaa35ef..0617cf4 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
@@ -13,11 +13,13 @@
 import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 import static java.time.LocalDate.now;
 
 /**
- * 二进制原始数据转换为图片工具类
+ * base64原始数据转换为图片工具类
  */
 public class ImageUtil {
 	static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
@@ -28,14 +30,14 @@
 	private static String PRF_MINIO_URL = "minio/jfpt/animalHeat";
 
 	/**
-	 * 二进制原始数据转换为图片
+	 * base64原始数据转换为图片
 	 * @param base64String
 	 */
 	public static String base64StringToImage(String base64String){
 		try {
-			byte[] bytes1 = decoder.decodeBuffer(base64String);
-			ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
-			BufferedImage bi1 = ImageIO.read(bais);
+			byte[] bytes = decoder.decodeBuffer(base64String);
+			ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+			BufferedImage bi = ImageIO.read(bais);
 			String UUID = DateUtil.today()+StringPool.SLASH+ StringUtil.randomUUID();
 			//可以是jpg,png,gif格式
 			File w2 = new File("D://"+PRE_URL+StringPool.SLASH+ UUID+".jpg");
@@ -47,7 +49,7 @@
 				parentFile.mkdirs();
 			}
 			//不管输出什么格式图片,此处不需改动
-			ImageIO.write(bi1, "jpg", w2);
+			ImageIO.write(bi, "jpg", w2);
 			//返回图片路径
 			return PRF_MINIO_URL+ StringPool.SLASH+ UUID +StringPool.DOT+ "jpg";
 		} catch (IOException e) {
@@ -55,4 +57,29 @@
 		}
 		return null;
 	}
+
+
+	/**
+	 * 获取base64原始数据图片的长宽
+	 * @param base64String
+	 */
+	public static Map<String,Object> getBase64ImageWidthAndHeight(String base64String){
+		Map<String, Object> map = new HashMap<>();
+		try {
+			//将base64字符串转换成二进制字节数组
+			byte[] bytes = decoder.decodeBuffer(base64String);
+			//二进制输入流
+			ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+			//io读取图片输入流
+			BufferedImage bi = ImageIO.read(bais);
+			//封装数据
+			map.put("imgWidth",bi.getWidth());
+			map.put("imgHeight",bi.getHeight());
+			//返回
+			return map;
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
index 5729dfd..585c19d 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -42,7 +42,7 @@
 	 * @param imgUrl 图片Url
 	 * @return
 	 */
-	Map<String, String> getParcelPic(String imgUrl);
+	Map<String, Object> getParcelPic(String imgUrl);
 
 	/**
 	 * 获取包裹明细分页数据,远程调用api获取数据
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
index f1b2906..ef3f18a 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.models.auth.In;
+import org.springblade.jfpt.animalheat.util.ImageUtil;
 import org.springblade.jfpt.parcel.service.ParcelService;
 import org.springblade.jfpt.parcel.util.DateUtils;
 import org.springblade.jfpt.parcel.util.HttpClientUtils;
@@ -308,7 +309,7 @@
 	 * @return
 	 */
 	@Override
-	public Map<String, String> getParcelPic(String imgUrl) {
+	public Map<String, Object> getParcelPic(String imgUrl) {
 		//截取图片imgKey信息
 		String[] imgKeys = imgUrl.split("=", imgUrl.length());
 		String imgKey = imgKeys[1];
@@ -317,8 +318,12 @@
 		map.put("imgKey",imgKey);
 		//执行http远程调用
 		String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
-		map.put("imgBase64",s);
-		return map;
+		//获取图片的长宽
+		Map<String, Object> imageMap = ImageUtil.getBase64ImageWidthAndHeight(s);
+		//封装数据
+		imageMap.put("imgBase64",s);
+		//返回
+		return imageMap;
 	}
 
 	/**

--
Gitblit v1.9.3