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