| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488 |
- #ifndef _libzkfp_h
- #define _libzkfp_h
- /**
- * @file libzkfp.h
- * @brief 接口定义
- * @author scar chen
- * @date 2016-04-12
- * @version 5.0
- * @par 版权:
- * ZKTeco
- * @par 历史版本
- *
- * @note
- *
- */
- #include <windows.h>
- #include "libzkfptype.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /**
- * @brief 初始化库
- * @param :
- * 无
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_Init();
- /**
- * @brief 释放库
- * @param :
- * 无
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_Terminate();
- /**
- * @brief 获取设备数
- * @param :
- * 无
- * @return
- * 返回值说明如下:
- * 当前接入指静脉仪设备数
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_GetDeviceCount();
- /**
- * @brief 打开设备
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * index | int | [in] | 设备索引
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * NULL | HANDLE | 失败
- * 其他 | HANDLE | 成功
- * @note
- */
- ZKINTERFACE HANDLE APICALL ZKFPM_OpenDevice(int index);
- /**
- * @brief 关闭设备
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_CloseDevice(HANDLE hDevice);
-
- /**
- * @brief 设置参数
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * nParamCode | int | [in] | 参数类型
- * paramValue | unsigned char*| [in] | 参数值
- * cbParamValue | unsigned int | [in] | 参数数据长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_SetParameters(HANDLE hDevice, int nParamCode, unsigned char* paramValue, unsigned int cbParamValue);
- /**
- * @brief 获取参数
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * nParamCode | int | [in] | 参数类型
- * paramValue | unsigned char*| [out] | 参数值
- * cbParamValue | unsigned int* | [out] | 参数数据长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_GetParameters(HANDLE hDevice, int nParamCode, unsigned char* paramValue, unsigned int* cbParamValue);
-
- /**
- * @brief 获取指纹(图像/模板)
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * fpImage | unsigned char*| [out] | 指纹图像
- * cbFPImage | unsigned int | [in] | fpImage内存大小
- * fpTemplate | unsigned char*| [out] | 指纹模板
- * cbTemplate | unsigned int* | [in/out] | 指纹模板长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_AcquireFingerprint(HANDLE hDevice, unsigned char* fpImage, unsigned int cbFPImage, unsigned char* fpTemplate, unsigned int* cbTemplate);
- /**
- * @brief 获取指纹图像
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * fpImage | unsigned char*| [out] | 指纹图像
- * cbFPImage | unsigned int | [in] | fpImage内存大小
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_AcquireFingerprintImage(HANDLE hDevice, unsigned char* fpImage, unsigned int cbFPImage);
- /**
- * @brief 创建算法操作实例
- * @param :
- * 无
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * NULL | HANDLE | 失败
- * 其他 | HANDLE | 成功
- * @note
- */
- ZKINTERFACE HANDLE APICALL ZKFPM_CreateDBCache();
- ZKINTERFACE HANDLE APICALL ZKFPM_DBInit(); //same as ZKFPM_CreateDBCache, for new version
- /**
- * @brief 释放算法操作实例
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_CloseDBCache(HANDLE hDBCache);
- ZKINTERFACE int APICALL ZKFPM_DBFree(HANDLE hDBCache); //same as ZKFPM_CloseDBCache, for new version
- ZKINTERFACE int APICALL ZKFPM_DBSetParameter(HANDLE hDBCache, int nParamCode, int paramValue);
- ZKINTERFACE int APICALL ZKFPM_DBGetParameter(HANDLE hDBCache, int nParamCode, int* paramValue);
- /**
- * @brief 将3个指纹模板合成登记模板
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * temp1 | unsigned char*| [in] | 指纹模板1
- * temp2 | unsigned char*| [in] | 指纹模板2
- * temp3 | unsigned char*| [in] | 指纹模板3
- * regTemp | unsigned char*| [out] | 登记模板
- * cbRegTemp | unsigned int* | [in/out] | 登记模板长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_GenRegTemplate(HANDLE hDBCache, unsigned char* temp1, unsigned char* temp2, unsigned char* temp3, unsigned char* regTemp, unsigned int* cbRegTemp);
- ZKINTERFACE int APICALL ZKFPM_DBMerge(HANDLE hDBCache, unsigned char* temp1, unsigned char* temp2, unsigned char* temp3, unsigned char* regTemp, unsigned int* cbRegTemp); //same as ZKFPM_GenRegTemplate, for new version
-
- /**
- * @brief 添加指纹模板到缓存
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * fid | unsigned int | [in] | 手指ID
- * fpTemplate | unsigned char*| [in] | 指纹模板
- * cbTemplate | unsigned int | [in] | 指纹模板长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_AddRegTemplateToDBCache(HANDLE hDBCache, unsigned int fid, unsigned char* fpTemplate, unsigned int cbTemplate);
- ZKINTERFACE int APICALL ZKFPM_DBAdd(HANDLE hDBCache, unsigned int fid, unsigned char* fpTemplate, unsigned int cbTemplate); //same as ZKFPM_AddRegTemplateToDBCache, for new version
- /**
- * @brief 从缓存删除指纹模板
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * fid | unsigned int | [in] | 手指ID
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_DelRegTemplateFromDBCache(HANDLE hDBCache, unsigned int fid);
- ZKINTERFACE int APICALL ZKFPM_DBDel(HANDLE hDBCache, unsigned int fid); //same as ZKFPM_DelRegTemplateFromDBCache, for new version
-
- /**
- * @brief 清空算法缓存
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_ClearDBCache(HANDLE hDBCache);
- ZKINTERFACE int APICALL ZKFPM_DBClear(HANDLE hDBCache); //same as ZKFPM_ClearDBCache, for new version
- /**
- * @brief 获取缓存模板数
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * fpCount | unsigned int* | [out] | 指纹模板数
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_GetDBCacheCount(HANDLE hDBCache, unsigned int* fpCount);
- ZKINTERFACE int APICALL ZKFPM_DBCount(HANDLE hDBCache, unsigned int* fpCount); //same as ZKFPM_GetDBCacheCount, for new version
- /**
- * @brief 指纹识别(1:N)
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * fpTemplate | unsigned char*| [in] | 指纹模板
- * cbTemplate | unsigned int | [in] | 指纹模板大小
- * FID | unsigned int* | [out] | 指静脉ID
- * score | unsigned int* | [out] | 分数
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_Identify(HANDLE hDBCache, unsigned char* fpTemplate, unsigned int cbTemplate, unsigned int* FID, unsigned int* score);
- ZKINTERFACE int APICALL ZKFPM_DBIdentify(HANDLE hDBCache, unsigned char* fpTemplate, unsigned int cbTemplate, unsigned int* FID, unsigned int* score); //same as ZKFPM_Identify, for new version
- /**
- * @brief 比对两枚指纹
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * template1 | unsigned char*| [in] | 指纹模板1
- * cbTemplate1 | unsigned int | [in] | 指纹模板1大小
- * template2 | unsigned char*| [in] | 指纹模板2
- * cbTemplate2 | unsigned int | [in] | 指纹模板2大小
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * >0 | int | 分数
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_MatchFinger(HANDLE hDBCache, unsigned char* template1, unsigned int cbTemplate1, unsigned char* template2, unsigned int cbTemplate2);
- ZKINTERFACE int APICALL ZKFPM_DBMatch(HANDLE hDBCache, unsigned char* template1, unsigned int cbTemplate1, unsigned char* template2, unsigned int cbTemplate2); //same as ZKFPM_MatchFinger, for new version
- /**
- * @brief 从Bitmap文件提取指纹模板
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * lpFilePathName | const char* | [in] | BMP图片路径
- * DPI | unsigned int | [in] | BMP图片DPI
- * fpTemplate | unsigned char*| [out] | 指纹模板
- * cbTemplate | unsigned int* | [in/out] | 模板长度
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * >0 | int | 分数
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_ExtractFromImage(HANDLE hDBCache, const char* lpFilePathName, unsigned int DPI, unsigned char* fpTemplate, unsigned int *cbTemplate);
- /**
- * @brief Base64字符串转二进制数据
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * src | const char* | [in] | Base64字符串
- * blob | unsigned char*| [out] | 返回二进制数据
- * cbBlob | unsigned int | [in] | blob内存大小
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * >0表示数据长度;<=0表示失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_Base64ToBlob(const char* src, unsigned char* blob, unsigned int cbBlob);
- /**
- * @brief 二进制数据转Base64字符串
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * src |const unsigned char*| [in] | 二进制数据
- * cbSrc | unsigned int | [in] | 二进制数据长度
- * base64Str | char * | [out] | 返回Base64字符串
- * cbBase64str | unsigned int | [int] | base64Str分配内存大小
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * >0表示数据长度;<=0表示失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_BlobToBase64(const unsigned char* src, unsigned int cbSrc, char* base64Str, unsigned int cbBase64str);
- /**
- * @brief 1:1比对用户指纹
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDBCache | HANDLE | [in] | 算法操作实例指针
- * fpTemplate | unsigned char*| [in] | 指纹模板
- * cbTemplate | unsigned int | [in] | 指纹模板大小
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * >0 | int | 分数
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_VerifyByID(HANDLE hDBCache, unsigned int fid, unsigned char* fpTemplate, unsigned int cbTemplate);
- /**
- * @brief 获取最后一次外部图像数据指针
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * width | int* | [out] | 图像宽
- * height | int* | [out] | 图像高
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 图像数据指针,请在ZKFPM_ExtractFromImage成功后获取
- * @note
- */
- ZKINTERFACE unsigned char* APICALL ZKFPM_GetLastExtractImage(int * width, int* height);
- /**
- * @brief 获取采集参数
- * @param :
- * 参数说明如下表
- * name | type | param direction | description of param
- * ----------------|-----------------|---------------------|------------------------
- * hDevice | HANDLE | [in] | 设备操作实例指针
- * pCapParams | PZKFPCapParams| [out] | 采集参数
- * @return
- * 返回值说明如下:
- * value | type | description of value
- * ----------------|---------------|-------------------------------
- * 0 | int | 成功
- * 其他 | int | 失败
- * @note
- */
- ZKINTERFACE int APICALL ZKFPM_GetCaptureParams(HANDLE hDevice, PZKFPCapParams pCapParams);
- ZKINTERFACE int APICALL ZKFPM_GetCaptureParamsEx(HANDLE hDevice, int* width, int* height, int* dpi);
- #ifdef __cplusplus
- };
- #endif
- #endif //_libzkfp_h
|