차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
ko:bs2_getuserdatasfaceex [2020/10/22 09:52] kkshin [BS2_GetUserDatasFaceEx] |
ko:bs2_getuserdatasfaceex [2024/05/28 17:18] (현재) kkshin |
||
---|---|---|---|
줄 6: | 줄 6: | ||
===== BS2_GetUserDatasFaceEx ===== | ===== BS2_GetUserDatasFaceEx ===== | ||
[+ 2.7.1] 사용자 식별자에 해당하는 사용자 정보를 가져옵니다. \\ | [+ 2.7.1] 사용자 식별자에 해당하는 사용자 정보를 가져옵니다. \\ | ||
- | 이때 userMask를 통하여 사용자 정보의 일부를 선별적으로 가져올 수 있습니다. 이 함수는 FaceStation F2 장치 지원을 포함합니다. | + | 이때 userMask를 통하여 사용자 정보의 일부를 선별적으로 가져올 수 있습니다. \\ |
+ | 이 함수는 Visual Face 인증 수단을 지원합니다. | ||
\\ | \\ | ||
==== 함수 ==== | ==== 함수 ==== | ||
줄 39: | 줄 40: | ||
|0x0200 |작업코드 | | |0x0200 |작업코드 | | ||
|0x0400 |개인메시지 | | |0x0400 |개인메시지 | | ||
- | |0x0800 |얼굴 ''(FaceStation F2)'' | | + | |0x0800 |얼굴 ''(Visual Face 지원)'' | |
- | |0x1000 |사용자설정 ''(FaceStation F2)'' | | + | |0x1000 |사용자설정 ''(Visual Face 지원)'' | |
|0xFFFF |사용자 정보 전체 | | |0xFFFF |사용자 정보 전체 | | ||
</WRAP> | </WRAP> | ||
줄 47: | 줄 48: | ||
성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | 성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | ||
\\ | \\ | ||
+ | ==== 샘플코드 ==== | ||
+ | C++ | ||
+ | <code cpp> | ||
+ | |||
+ | const int MAX_USER_PAGE_COUNT = 2048; | ||
+ | vector<BS2UserFaceExBlob> userBlob(MAX_USER_PAGE_COUNT); | ||
+ | BS2_USER_MASK userMask = BS2_USER_MASK_ALL; | ||
+ | |||
+ | for (uint32_t idx = 0; idx < numUID; idx += MAX_USER_PAGE_COUNT) | ||
+ | { | ||
+ | uint32_t availUserCount = min<uint32_t>(MAX_USER_PAGE_COUNT, numUID - idx); | ||
+ | |||
+ | int sdkResult = BS2_GetUserDatasFaceEx(context_, id, uidObj + BS2_USER_ID_SIZE * idx, availUserCount, &userBlob[0], userMask); | ||
+ | if (BS_SDK_SUCCESS != sdkResult) | ||
+ | { | ||
+ | TRACE("BS2_GetUserDatas call failed: %d", sdkResult); | ||
+ | if (uidObj) | ||
+ | BS2_ReleaseObject(uidObj); | ||
+ | return sdkResult; | ||
+ | } | ||
+ | |||
+ | for (uint32_t pageIdx = 0; pageIdx < availUserCount; pageIdx++) | ||
+ | { | ||
+ | print(userBlob[pageIdx]); | ||
+ | |||
+ | if (0 < userBlob[pageIdx].user.numCards && userBlob[pageIdx].cardObjs) | ||
+ | BS2_ReleaseObject(userBlob[pageIdx].cardObjs); | ||
+ | if (0 < userBlob[pageIdx].user.numFingers && userBlob[pageIdx].fingerObjs) | ||
+ | BS2_ReleaseObject(userBlob[pageIdx].fingerObjs); | ||
+ | if (0 < userBlob[pageIdx].user.numFaces && userBlob[pageIdx].faceExObjs) | ||
+ | BS2_ReleaseObject(userBlob[pageIdx].faceExObjs); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | C# | ||
+ | <code cpp> | ||
+ | BS2UserFaceExBlob[] userBlobs = new BS2UserFaceExBlob[numUser]; | ||
+ | BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetUserDatasFaceEx(sdkContext, deviceID, uid, numUser, userBlobs, userMask); | ||
+ | |||
+ | if (result == BS2ErrorCode.BS_SDK_SUCCESS) | ||
+ | { | ||
+ | for (UInt32 index = 0; index < numUser; index++) | ||
+ | { | ||
+ | print(userBlobs[index]); | ||
+ | |||
+ | if (userBlobs[index].cardObjs != IntPtr.Zero) | ||
+ | API.BS2_ReleaseObject(userBlobs[index].cardObjs); | ||
+ | if (userBlobs[index].fingerObjs != IntPtr.Zero) | ||
+ | API.BS2_ReleaseObject(userBlobs[index].fingerObjs); | ||
+ | if (userBlobs[index].faceObjs != IntPtr.Zero) | ||
+ | API.BS2_ReleaseObject(userBlobs[index].faceObjs); | ||
+ | if (userBlobs[index].faceExObjs != IntPtr.Zero) | ||
+ | API.BS2_ReleaseObject(userBlobs[index].faceExObjs); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
==== 함께 보기 ==== | ==== 함께 보기 ==== | ||
[[BS2_EnrollUserFaceEx]]\\ | [[BS2_EnrollUserFaceEx]]\\ |