找到一些资料,搞定.
指纹采集器初始化进入工作状态后,调用begin
Enroll处于登记指纹状态,调用begin
Capture处于指纹验证状态。控件的工作方式是基于事件驱动,触发事件的顺序参考上面示意图。
指纹登记一般需要按同一手指1-4次,然后由识别系统综合处理得到一个指纹登记模板,按压登记指纹次数由控件属性EnrollCount设置,达到设定次数后会触发OnEnroll和OnEnrollToFile事件。
指纹验证时,按压手指后会触发OnCapture和OnCaptureToFile事件,此时可以调用VerFinger或者IdentificationInFPCacheDB进行1:1或者1:N比对。
需要注意每次按压手指都会触发OnFeatureInfo事件,如果按压手指的指纹模板质量不合格,则本次取像无效,需要重新按压手指。
4.1属性
4.1.1 Active as Boolean
Read only
当前SensorIndex设定的指纹采集器是否准备就绪。
4.1.2 EngineValid as Boolean
Read only
指纹识别系统是否正常工作。调用过函数initEngine后会返回有效结果
4.1.3 EnrollIndex As Long
Read only
登记指纹时取样的序号,即表示当前手指登记已经取到的有效次数。
4.1.4 EnrollCount As Long
登记指纹时取样的次数,取值范围为1-4次
4.1.5 FPEngineVersion AS String
read only
指纹识别系统版本号
4.1.6 ImageHeight AS integer
Read only
指纹图像的高度
4.1.7 ImageWidth AS integer
Read only
指纹图像的宽度
4.1.8 IsRegister As Boolean
Read only
是否正登记指纹
4.1.9 OneToOneThreshold As Boolean
设定Biokey低速指纹1:1比对的识别阀值分数(1-100),默认为10,值越大,误判率越低同时拒绝率变大
注意:1:1控件没有这个属性
4.1.10 RegTplFileName As String
设置当事件OnEnrollToFile发生时,保存指纹登记模板的文件名称。
4.1.11 SensorCount As Long
Read only
当前连接到计算机的指纹采集器的个数,当EngineValid无效时,返回0
4.1.12 SensorIndex AS Long
连接多个指纹采集器时,选择指纹头的序号,从0开始;小于零时指纹采集器不工作。
4.1.13 SensorSN As String
指纹采集器的硬件序列号
4.1.14 TemplateLen As Long
Read only
指纹登记模板的字节长度。
4.1.15 Threshold As Long
设定指纹识别系统比对识别阀值分数(1-100),默认为10,值越大,误判率越低同时拒绝率变大
4.1.16 VerTplFileName As String
设置当事件OnCaptureToFile发生时,保存指纹验证模板的文件名称。
4.2 方法
1:1和1:N控件接口相同的方法:
4.2.1 Sub begin
Enroll()
开始登记指纹,登记结束后发生OnEnroll事件。
4.2.2 Sub CancelEnroll()
取消当前的指纹登记状态,即由 begin
Enroll开始的操作可由此函数中断。
4.2.3 Functiondo
ngleIsExist As Boolean
检查加密狗是否存在。
4.2.4 Functiondo
ngleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As Integer) As Boolean
得到种子码lp2的四个16位整数(p1,p2,p3,p4)返回值,加密狗可以通过内部算法计算一个种子码,得到四个返回码。种子码算法是不公开的,可以通过检查返回码是否是期望的值来检查加密狗是否存在。
4.2.5 Functiondo
ngleUserID As Long
读出加密狗中的用户ID,用户ID不会重复相同。保存在加密狗内部特定位置。
4.2.6 Functiondo
ngleMemRead(Byval p1, p2 As Integer, buf) As Boolean
读出加密狗内存区位置p1开始的p2个字节到Variant变量buf(一维字节数组)。内存区共有24个字节,位置为0-23
4.2.7 Functiondo
ngleMemWrite(Byval p1, p2 As Integer, buf) As Boolean
写入Variant变量buf(一维字节数组)到加密狗内存区位置p1开始的p2个字节内。内存区共有24个字节,位置为0-23
4.2.8 Function GetTemplate()
得到最近一次获得的指纹模板。
4.2.9 Function GetFingerImage(Byval AFingerImage) As Boolean
得到最近一次获得的指纹图像(BMP 格式)。
4.2.10 Function InitEngine() As Long
初始化指纹识别系统。SensorCount、SensorSN、EngineValid、ImageHeight、ImageWidth等属性需在该函数被调用后才能返回正确结果。返回值:
0 初始化成功
1 指纹识别驱动程序加载失败
2 没有连接指纹识别仪
3 属性SensorIndex指定的指纹采集器不存在(注意:在调用之前设置属性SensorIndex)
可以使用方法EndEngine释放指纹设备系统
4.2. 11 Function VerFinger(byval regTemplate, verTemplate, AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean
比对两枚指纹的特征模板是否匹配。其中regTemplate表示指纹登记特征模板,verTemplate表示现场采集的指纹验证特征模板,AdoLearning表示是否进行指纹特征模板学习更新。AregFeatureChanged表示登记模板regTemplate是否改变,两枚指纹匹配时返回 True,不匹配时返回 False
说明:
手指特征随时间可能会发生一定程度的变化,通常不会影响指纹的比对,但通过进行指纹特征模板学习更新,系统会综合得到新的模板,从而可以降低拒绝率。
4.2.12 Function VerFingerFromFile(regTemplateFile As String, verTemplateFile As String,AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean
比对两枚指纹的特征模板文件是否匹配。其中regTemplateFile表示指纹登记特征模板文件,verTemplateFile表示现场采集的指纹验证特征模板文件,AdoLearning表示是否进行指纹特征模板学习更新。AregFeatureChanged表示登记模板文件regTemplateFile是否改变。两枚指纹匹配时返回 True,不匹配时返回 False
4.2.13 Function VerRegFingerFile(RegTemplateFile As String, verTemplate,AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean
比对两枚指纹的特征模板是否匹配。其中regTemplate表示由 FileName 指定文件中的以前登记指纹特征模板,verTemplate表示现场采集的指纹的特征模板,AdoLearning表示是否进行指纹特征模板学习更新。AregFeatureChanged表示登记模板文件regTemplateFile是否改变。两枚指纹匹配时返回 True,不匹配时返回 False
4.2.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long)
在由(x,y)指定的位置上按照(aWidth, aHeight)指定的大小显示指纹图像,HDC表示要显示指纹的窗口的设备描述表句柄
4.2.15 Sub PrintImageEllipseAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long, bkColor As OLE_COLOR)
在由(x,y)指定的位置上按照(aWidth, aHeight)指定的大小显示指纹图像,HDC表示要显示指纹的窗口的设备描述表句柄。这里的指纹图像被一椭圆形包围。
4.2.16 Sub SaveBitmap(FileName As String)
保存最后一次采集到的指纹的图像到 FileName 指定的位图文件中。
4.2.17 Sub SaveJPG(FileName As String)
保存最后一次采集到的指纹的图像到 FileName 指定的Jpeg文件中。
4.2.18 Function SaveTemplate(FileName As String, Template) As Boolean
保存Template指纹的特征模板到 FileName 指定的文件中。
4.2.19 function EncodeTemplate(ASour, var ADest As String) As Boolean
将控件使用的Variant模板ASour转换为BASE64格式的模板字符串ADest。
4.2.20 function DecodeTemplate(const ASour As String, ADest) As Boolean
将BASE64格式的模板字符串ASour转换为控件使用的Variant类型ADset模板。
以上两个方法主要用于模板的数据库保存,Variant类型模板是以二进制格式数组方式存放,在PB, VB等语言中操作比较困难,方法EncodeTemplate可以将Variant类型编码转换为字符串类型,方法DecodeTemplate可以将字符串类型编码转换为Variant类型,需要注意的是,模板变量BASE64编码为字符串后,模板长度将变长。
4.2.21 Sub begin
Capture()
设置当前指纹设备开始取像,可以使用方法CanncelCapture禁止当前指纹设备取像。
4.2.22 Sub EndEngine()
释放由方法InitEngine初始化的指纹设备,可以使用方法InitEngine重新初始化指纹设备。