From 525166acab2b1219417f1e3953c0b7836995bc2c Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期一, 11 三月 2024 13:41:18 +0800
Subject: [PATCH] 修改事件

---
 src/main/java/com/whyc/carCamera/Acs/FaceManage.java |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/carCamera/Acs/FaceManage.java b/src/main/java/com/whyc/carCamera/Acs/FaceManage.java
index 64f9127..58ea455 100644
--- a/src/main/java/com/whyc/carCamera/Acs/FaceManage.java
+++ b/src/main/java/com/whyc/carCamera/Acs/FaceManage.java
@@ -291,6 +291,92 @@
             System.out.println("NET_DVR_StopRemoteConfig鎺ュ彛鎴愬姛");
         }
     }
+    /**
+     * 鏌ヨ鍗曞紶鍗″彿鍏宠仈鐨勪汉鑴镐俊鎭�
+     *
+     * @param lUserID 鐢ㄦ埛鐧诲綍鍙ユ焺
+     * @param CardNo 鍗″彿
+     */
+    public static String getFaceCInfo(int lUserID, String CardNo) {
+        String filename ="";
+        HCNetSDK.NET_DVR_FACE_COND struFaceCond = new HCNetSDK.NET_DVR_FACE_COND();
+        struFaceCond.read();
+        struFaceCond.dwSize = struFaceCond.size();
+        struFaceCond.dwFaceNum = 1; //鏌ヨ涓�涓汉鑴稿弬鏁�
+        struFaceCond.dwEnableReaderNo = 1;//璇诲崱鍣ㄧ紪鍙�
+        for (int j = 0; j < HCNetSDK.ACS_CARD_NO_LEN; j++) {
+            struFaceCond.byCardNo[j] = 0;
+        }
+        System.arraycopy(CardNo.getBytes(), 0, struFaceCond.byCardNo, 0, CardNo.getBytes().length);
+        struFaceCond.write();
+        int m_lGetFaceHandle = AcsMain.hCNetSDK.NET_DVR_StartRemoteConfig(lUserID, HCNetSDK.NET_DVR_GET_FACE, struFaceCond.getPointer(), struFaceCond.size(), null, null);
+        if (m_lGetFaceHandle == -1) {
+            System.out.println("寤虹珛鏌ヨ浜鸿劯鍙傛暟闀胯繛鎺ュけ璐ワ紝閿欒鐮佷负" + AcsMain.hCNetSDK.NET_DVR_GetLastError());
+            return filename;
+        } else {
+            System.out.println("寤虹珛鏌ヨ浜鸿劯鍙傛暟闀胯繛鎺ユ垚鍔燂紒");
+        }
+        //鏌ヨ缁撴灉
+        HCNetSDK.NET_DVR_FACE_RECORD struFaceRecord = new HCNetSDK.NET_DVR_FACE_RECORD();
+        struFaceRecord.read();
+        while (true) {
+            dwState = AcsMain.hCNetSDK.NET_DVR_GetNextRemoteConfig(m_lGetFaceHandle, struFaceRecord.getPointer(), struFaceRecord.size());
+            struFaceRecord.read();
+            if (dwState == -1) {
+                System.out.println("NET_DVR_GetNextRemoteConfig鏌ヨ浜鸿劯璋冪敤澶辫触锛岄敊璇爜锛�" + AcsMain.hCNetSDK.NET_DVR_GetLastError());
+                break;
+            } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_NEED_WAIT) {
+                System.out.println("鏌ヨ涓紝璇风瓑寰�...");
+                try {
+                    Thread.sleep(10);
+                } catch (InterruptedException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+                continue;
+            } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FAILED) {
+                System.out.println("鑾峰彇浜鸿劯鍙傛暟澶辫触, 鍗″彿: " + CardNo);
+                break;
+            } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_EXCEPTION) {
+                System.out.println("鑾峰彇浜鸿劯鍙傛暟寮傚父, 鍗″彿: " + CardNo);
+                break;
+            } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_SUCCESS) {
+                if ((struFaceRecord.dwFaceLen > 0) && (struFaceRecord.pFaceBuffer != null)) {
+                    FileOutputStream fout;
+                    try {
+                        filename = System.getProperty("user.dir") + "\\pic\\" + CardNo + "_Face.jpg";
+                        fout = new FileOutputStream(filename);
+                        //灏嗗瓧鑺傚啓鍏ユ枃浠�
+                        long offset = 0;
+                        ByteBuffer buffers = struFaceRecord.pFaceBuffer.getByteBuffer(offset, struFaceRecord.dwFaceLen);
+                        byte[] bytes = new byte[struFaceRecord.dwFaceLen];
+                        buffers.rewind();
+                        buffers.get(bytes);
+                        fout.write(bytes);
+                        fout.close();
+                        System.out.println("鑾峰彇浜鸿劯鍙傛暟鎴愬姛, 鍗″彿: " + CardNo + "鍥剧墖淇濆瓨璺緞: " + filename);
+
+                    } catch (FileNotFoundException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (IOException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+                break;
+            } else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FINISH) {
+                System.out.println("鑾峰彇鍗″弬鏁板畬鎴�");
+                break;
+            }
+        }
+        if (!AcsMain.hCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFaceHandle)) {
+            System.out.println("NET_DVR_StopRemoteConfig鎺ュ彛璋冪敤澶辫触锛岄敊璇爜锛�" + AcsMain.hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            System.out.println("NET_DVR_StopRemoteConfig鎺ュ彛鎴愬姛");
+        }
+        return filename;
+    }
 
     /**
      * 鍒犻櫎鍗曠嫭浜鸿劯淇℃伅

--
Gitblit v1.9.1