瀏覽代碼

添加功能

suntianwu 3 年之前
父節點
當前提交
53d2a2ad10

+ 3 - 3
src/main/java/com/iden/bms/face/FaceIdenService.java

@@ -45,8 +45,8 @@ public class FaceIdenService {
 
     @Value("${iden.root:#{null}}")
     private String idenRoot;
-    @Value("${file.url:#{null}}")
-    private String fileUrl;
+    @Value("${image.url:#{null}}")
+    private String imageUrl;
 
     private static final Logger logger = LogManager.getLogger(FaceIdenService.class);
 
@@ -119,7 +119,7 @@ public class FaceIdenService {
 
                                 imgFile.renameTo(finalImgFile);//移动到最终目录
 
-                                idenImageStore.setImage( fileUrl + cameraCode + "/" + finalImgFile.getName());
+                                idenImageStore.setImage( imageUrl + cameraCode + "/" + finalImgFile.getName());
 
                                 //TODO 关联personId
 

+ 2 - 1
src/main/java/com/iden/bms/face/FaceIdenTool.java

@@ -2,6 +2,7 @@ package com.iden.bms.face;
 
 import com.face.monitor.FaceMonitor;
 import com.face.monitor.model.FaceModel;
+import com.iden.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -28,7 +29,7 @@ public class FaceIdenTool {
                 logger.info("personId: " + faceModel.getPersonId());
                 //logger.info("featValue: " + faceModel.getFeatValue());
                 if (name.equals(faceModel.getName())) {
-                    return new String(faceModel.getFeatValue());
+                    return ByteUtil.byte2Hex(faceModel.getFeatValue());
                 }
             }
         }

+ 45 - 0
src/main/java/com/iden/common/util/ByteUtil.java

@@ -0,0 +1,45 @@
+package com.iden.common.util;
+
+public class ByteUtil {
+    /**
+     *  将byte[]数组转换成16进制字符。一个byte生成两个字符,长度对应1:2
+     * @param bytes,输入byte[]数组
+     * @return 16进制字符
+     */
+    public static String byte2Hex(byte[] bytes) {
+        if (bytes == null) {
+            return null;
+        }
+        StringBuilder builder = new StringBuilder();
+        // 遍历byte[]数组,将每个byte数字转换成16进制字符,再拼接起来成字符串
+        for (int i = 0; i < bytes.length; i++) {
+            // 每个byte转换成16进制字符时,bytes[i] & 0xff如果高位是0,输出将会去掉,所以+0x100(在更高位加1),再截取后两位字符
+            builder.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
+        }
+        return builder.toString();
+    }
+
+    /**
+     *  将16进制字符转换成byte[]数组。与byte2Hex功能相反。
+     * @param string 16进制字符串
+     * @return byte[]数组
+     */
+    public static byte[] hex2Byte(String string) {
+        if (string == null || string.length() < 1) {
+            return null;
+        }
+        // 因为一个byte生成两个字符,长度对应1:2,所以byte[]数组长度是字符串长度一半
+        byte[] bytes = new byte[string.length() / 2];
+        // 遍历byte[]数组,遍历次数是字符串长度一半
+        for (int i = 0; i < string.length() / 2; i++) {
+            // 截取没两个字符的前一个,将其转为int数值
+            int high = Integer.parseInt(string.substring(i * 2, i * 2 + 1), 16);
+            // 截取没两个字符的后一个,将其转为int数值
+            int low = Integer.parseInt(string.substring(i * 2 + 1, i * 2 + 2), 16);
+            // 高位字符对应的int值*16+低位的int值,强转成byte数值即可
+            // 如dd,高位13*16+低位13=221(强转成byte二进制11011101,对应十进制-35)
+            bytes[i] = (byte) (high * 16 + low);
+        }
+        return bytes;
+    }
+}

+ 2 - 2
src/main/resources/application-dev.properties

@@ -31,6 +31,6 @@ spring.redis.jedis.pool.min-idle=5
 
 #服务部署根目录
 iden.root=/data/iden/
-
-file.url=https://iden.106tec.com/iden-file/
+#图像访问http前缀
+image.url=http://124.70.58.209:17778/
 

+ 4 - 2
src/main/resources/application-prod.properties

@@ -32,5 +32,7 @@ spring.redis.jedis.pool.max-wait=-1
 spring.redis.jedis.pool.min-idle=5
 #################################### redis的集群标准配置 结束 ##############################
 
-#图像数据根目录
-data.image.root=/data/iden/data/
+#服务部署根目录
+iden.root=/data/iden/
+#图像访问http前缀
+image.url=http://124.70.58.209:17778/