Caja PDF

Comparta fácilmente sus documentos PDF con sus contactos, la web y las redes sociales.

Compartir un archivo PDF Gestor de archivos Caja de instrumento Buscar PDF Ayuda Contáctenos



ZKSOAP .pdf



Nombre del archivo original: ZKSOAP.pdf
Título: ZK Sensor Image development Manual.doc
Autor: Administrator

Este documento en formato PDF 1.2 fue generado por pdfFactory Pro www.fineprint.com.cn / pdfFactory Pro 2.10 (Windows XP Chinese), y fue enviado en caja-pdf.es el 19/07/2016 a las 16:52, desde la dirección IP 207.248.x.x. La página de descarga de documentos ha sido vista 1646 veces.
Tamaño del archivo: 221 KB (59 páginas).
Privacidad: archivo público




Descargar el documento PDF









Vista previa del documento


ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

ZKFinger SDK 4.0 Manual
ZKFinger SDK 4.0
ZKSoftware Inc.
All Right Reserved

ZKFinger SDK Copyright Declaration
ZKFinger SDK and the software development license agreement define your
right related to the copyright of this development kit,and if you don’t agree with
the following agreement, please return the product to the place you bought it
immediately.
I. Usage License
You can only copy one software package related to this SDK(including
Setup.exe、License.rtf、Biokey.ocx、Manual.doc and pertinent samples)to
one single PC,and without written license from Zhongkong Automation
System Inc., Ltd, content of the software package related to this SDK and
this manual can not be copied or reprinted in its original form or any other
forms by means of paper, electronics or any others.
II. Trademark Registration
ZKSoftware., ZKFinger, and ZKSoftware are registered trademarks owned
by Zhongkong Automation System Inc., Ltd, protected by laws of People’s
Republic of China, and any illegitimate usage is forbidden. Microsoft is a
registered trademark of Microsoft Corporation, and any other products and
company names mentioned in this manual can be trademarks of respective
owners.
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

If the content of this manual is changed, sorry that no further notice will be
given.

ZKSoftware Inc.

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

User Registration
After you have bought this product, please fill in User
Registration Form carefully. If you send the completed form to our
company by fax or email, you will become a legitimate user of this
product, and you are able to obtain our total technical support service
and information related to upgrading of this software version!
User Registration Form
1、 You bought the software on (Date):____/__/__
at (Place):___________________
___________________
2、Your name: ___________
Position:___________
Addressing: [ ]Sir [ ]Madam
Telephone: _______________
E-mail: _______________
Address:_____________________________
3、The name of your company:_________________________
_________________________
The abbreviation of your company: _________________________
Company
address:
_______Province/City________City/District_________________________
Zip code: _______
Company Telephone: (____)____________
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Staff number: [ ] <100 persons
[ ] 101to 200 persons
[ ] 201to 500 persons
[ ] 501to 1000 persons
[ ] above 1000 persons
Website: _________________________
Email address: _________________________
4、Are you willing to receive our
product upgrading notice?
new product advertisement?
technique information express?
website upgrading notice?

[
[
[
[

]Yes
]Yes
]Yes
]Yes

Please fax to : 010-51518015
Or Email to:support@biometric.com.cn

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Table of Contents
1.

ZKFINGER ALGORITHM DESCRIPTION .............................................1

2.

ZKFINGER SDK ARCHITECT ..................................................................3

3.

SOFTWARE INSTALLATION ....................................................................5
3.1 DISC FILES AND DIRECTORY ...........................................................................5
3.2 SOFTWARE INSTALLATION ..............................................................................6

4、ACTIVEX CONTROL REFERENCE...........................................................7
4.1 PROPERTY .......................................................................................................7
4.1.1 Active as Boolean ...................................................................................7
4.1.2 EngineValid as Boolean ..........................................................................7
4.1.3 EnrollIndex As Long...............................................................................7
4.1.4 EnrollCount As Long ..............................................................................8
4.1.5 FPEngineVersion AS String ....................................................................8
4.1.6 ImageHeight AS integer..........................................................................8
4.1.7 ImageWidth AS integer...........................................................................8
4.1.8 IsRegister As Boolean.............................................................................8
4.1.9 OneToOneThreshold As Boolean ...........................................................8
4.1.10 RegTplFileName As String...................................................................9
4.1.11 SensorCount As Long ...........................................................................9
4.1.12 SensorIndex AS Long ...........................................................................9
4.1.13 SensorSN As String...............................................................................9
4.1.14 TemplateLen As Long...........................................................................9
4.1.15 Threshold As Long..............................................................................10
4.1.16 VerTplFileName As String..................................................................10
4.2 METHOD .......................................................................................................10
4.2.1 The same method for the control interfaces of 1:1 and 1:N ............10
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.2.1.1 Sub BeginEnroll() ..........................................................................10
4.2.1.2 Sub CancelEnroll().........................................................................10
4.2.1.3 Function DongleIsExist As Boolean ..............................................10
4.2.1.4 Function DongleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As
Integer) As Boolean ...................................................................................11
4.2. 1.5 Function DongleUserID As Long .................................................11
4.2.1.6 Function DongleMemRead(Byval p1, p2 As Integer, buf) As
Boolean ......................................................................................................11
4.2.1.7 Function DongleMemWrite(Byval p1, p2 As Integer, buf) As
Boolean ......................................................................................................11
4.2.1.8 Function GetTemplate() .................................................................11
4.2.1.9 Function GetFingerImage(Byval AFingerImage) As Boolean.......12
4.2.1.10 Function InitEngine() As Long ....................................................12
4.2.1.11 Function VerFinger(byval regTemplate, verTemplate,
AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As
Boolean ......................................................................................................12
4.2.1.12 Function VerFingerFromFile(regTemplateFile As String,
verTemplateFile As String,AdoLearning As Boolean, byval
AregFeatureChanged As Boolean) As Boolean .........................................13
4.2.1.13 Function VerRegFingerFile(RegTemplateFile As String,
verTemplate,AdoLearning As Boolean, byval AregFeatureChanged As
Boolean) As Boolean .................................................................................13
4.2.1.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As
Long, aWidth As Long, aHeight As Long) ................................................13
4.2.1.15 Sub PrintImageEllipseAt(HDC As OLE_HANDLE, X As Long,
Y As Long, aWidth As Long, aHeight As Long, bkColor As OLE_COLOR)
...................................................................................................................14
4.2.1.16 Sub SaveBitmap(FileName As String).........................................14
4.2.1.17 Sub SaveJPG(FileName As String)..............................................14
4.2.1.18 Function SaveTemplate(FileName As String, Template) As
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Boolean ......................................................................................................14
4.2.1.19 function EncodeTemplate(ASour, var ADest As String) As
Boolean ......................................................................................................14
4.2.1.20 function DecodeTemplate(const ASour As String, ADest) As
Boolean ......................................................................................................14
4.2.1.21 function EncodeTemplate1(ASour) As String...........................15
4.2.1.22 function DecodeTemplate1(const ASour As String) As Variant...15
4.2.1.23 Sub BeginCapture()......................................................................15
4.2.1.24 Sub EndEngine() ..........................................................................15
4.2.1.25 function VerFingerFromStr(regTemplateStr As String,
verTemplateStr As String, AdoLearning As Boolean, byval
AregFeatureChanged As Boolean) As Boolean .........................................15
4.2.1.26 function GetTemplateAsString() As String ..................................16
4.2.2 Method for 1:N control interface ..........................................................16
4.2.2.1 Function AddRegTemplateToFPCacheDB(fpcHandle As Long,
FPID As Long, pRegTemplate) As Long ...................................................16
4.2.2.2 Function AddRegTemplateFileToFPCacheDB(fpcHandle As Long,
FPID As Long, pRegTemplateFile As String) As Long .............................16
4.2.2.3 Function CreateFPCacheDB As Long ...........................................16
4.2.2.4 Sub FlushFPImages ()....................................................................17
4.2.2.5 Sub FreeFPCacheDB( fpcHandle As Long)...................................17
4.2.2.6 Function IdentificationFromFileInFPCacheDB (fpcHandle As
Long, pVerTemplateFile As String, Byval Score As Long, Byval
ProcessedFPNumber As Long) As Long....................................................17
4.2.2.7 Function IdentificationInFPCacheDB (fpcHandle As Long,
pVerTemplate, Byval Score As Long, Byval ProcessedFPNumber As
Long) As Long ...........................................................................................18
4.2.2.8 Function IsOneToOneTemplate (ATemplate) As Boolean .............19
4.2.2.9 Function ModifyTemplate(byval Atemplate, AOneToOne As
Boolean) As Boolean .................................................................................19
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.2.2.10 Function RemoveRegTemplateFromFPCacheDB (fpcHandle As
Long, FPID As Long) As Long..................................................................19
4.2.2.11 Sub CancelCapture() ....................................................................19
4.2.2.12 Function AddRegTemplateStrToFPCacheDB(fpcHandle As Long,
FPID As Long, ARegTemplateStr As String) As Long ..............................19
4.2.2.13 Function IdentificationFromStrInFPCacheDB (fpcHandle As
Long, AVerTemplateStr As String, Byval Score As Long, Byval
ProcessedFPNumber As Long) As Long....................................................20
4.2.2.14 Sub SetAutoIdentifyPara(AutoIndentify As Boolean, fpcHandle
As Long, Score As Long)...........................................................................20
4.2.3 Methods for 1:1 control interface..........................................................21
4.2.3.1 Function AddBitmap(BitmapHandle As OLE_HANDLE,
ValidRectX1 As Long, ValidRectY1 As Long, ValidRectX2 As Long,
ValidRectY2 As Long, DPI As Long) As Boolean ....................................21
4.2.3.2 Function AddImageFile(FileName As String, DPI As Long) As
Boolean ......................................................................................................21
4.3 EVENTS .........................................................................................................21
4.3.1 OnCapture(ActionResult AS Boolean, ATemplate) ..............................21
4.3.2 OnCaptureToFile(ActionResult AS Boolean).......................................22
4.3.3 OnEnroll(ActionResult AS Boolean, ATemplate).................................22
4.3.4 OnEnrollToFile(ActionResult AS Boolean) .........................................22
4.3.5 OnFeatureInfo(AQuality As Long).......................................................23
4.3.6 OnImageReceived(byval AImageValid As Boolean)............................23
4.3.7 OnFingerTouching ................................................................................23
4.3.8 OnFingerLeaving ..................................................................................23
5、TASK FLOW DESCRIPTION .....................................................................25
6、COMMON QUESTIONS DESCRIPTION .................................................28
6.1 THE DIFFERENCE BETWEEN 1:1 CONTROL AND 1:N CONTROL .....................28
6.2 READ- IN AND READ-OUT FINGERPRINT TEMPLATES IN DATABASE ..............28
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

6.3 SOFTWARE DOGGLE AND AUTHORIZED LICENSE DOCUMENTATION ............31
6.4 THE USE OF 1:N HIGH- SPEED BUFFER ...........................................................31
6.5 USING FINGERPRINT IMAGES ........................................................................32
6.6 SETTING FINGERPRINT IDENTIFICATION THRESHOLD ....................................32
6.7 SOLUTIONS TO LOW-QUALITY FINGERPRINT TEMPLATES FOR 1:N
IDENTIFICATION ..................................................................................................32
6.8 CONNECTING MULTIPLE FINGERPRINT SENSORS ...........................................36
7、DEMO PROGRAM DESCRIPTION ..........................................................37
8、ZKFINGER SDK DEVELOPMENT LICENSE AGREEMENT..............42
9、SOFTWARE AFTER-SALE SERVICE ......................................................48
10、CONTACT US..............................................................................................50

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

1. ZKFinger Algorithm Description
ZKFinger algorithm is a kind of quick and accurate 1:1 and 1:N fingerprint
identification algorithm, which is totally open to software developers and system
integrators. If you use ZKFinger to identify fingerprints (2000-6000 pieces of
fingerprints),you can complete the identification task easily within 1-5 seconds
(the following tests require Pentium III 900MHz+ 128MB EMS memory) without
categorizing fingerprints by names, PIN or any others in advance. ZKFinger
algorithm has the following features:

1

1、

ZKFinger software development package can be quickly integrated
to customers’ systems, and can support any scanner device and
fingerprint Sensor (Image quality >=300DPI) through open image
process interface.

2、

By strainer mirrors and adequate valve values which are
self-adaptive or can be easily matched, ZKFinger algorithm is able
to weaken noise, increase the contrast degree of the bridge and vale,
and even to capture whole or partial feature points from fingerprint
of bad quality (fingerprint which is dirty, too dry or wet, broken, or
with wounds, scars and marks) .

3、

ZKFinger algorithm identification supports the translation of
fingerprints (>=35% of the fingerprint size) and circumrotation for
360 degree. Special technology is used to realize speedy verification
when the fingerprint is translated or rotated for 360 degree (the
average speed is 3000 pieces/second). Even when the fingerprint has
few feature points (<=10,normally fingerprint’s feature points
ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

>=15),this function can also be achieved.
4、

ZKFinger algorithm does not require global feature points (core
point, triangular point), and identification can be completed by local
feature points.

5、

Through classification algorithm (fingerprints are classified into five
categories: arch category, left loop category, right loop category, tine
arch category, and vortex category), ZKFinger use global feature
ordering in advance, which accelerates the process of fingerprint
verification remarkably.

6、

ZKFinger algorithm is quite concise: data only need 350K memory,
so that they can easily be imported into embedded systems.

ZKFinger was used to test 2000 pieces of fingerprints collected from four
Sensors (YLC, DFR200, U.are.U, Authentec)—every piece of fingerprint was
verified with the other ones, and verification and test were carried out for
altogether 4,000,000 times—and eventually the following test results were
achieved:
Template size
Rotation
FAR
FRR
Registration time
Average verification speed
Image quality

ZKSoftware Inc.

310 or 1152 Byte
0 – 360 degree
<= 0.001%
<= 2.0%
0.5 second
2500 pieces/second
>=300DPI

http://www.zksoftware.com

2

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

2. ZKFinger SDK Architect
ZKFinger SDK 4.0 Pro (Software Development Kit) mainly exists in the
form of ActiveX, and users can develop application programs relative to
fingerprint sensors by means of varied development languages (such as
VC++, C++Builder, Delphi, VB, Visual Foxpro, PB and so on).
Files Included
Files

Operation System

Description

Setup.exe

3

Installation

program

for

Windows ME

fingerprint Sensor driver and

Windows NT

Doggle driver

Windows 2000

\Sdk\Manual_cn.pdf

SDK Chinese manual

Windows XP

\Sdk\Manual_en.pdf

SDK English manual

Windows Vista

\SDK\Demo

Sample

\Sdk\One\Biokey.ocx

ZKFinger ActiveX Control

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

SDK Architecture
Application Program

ActiveX Control
OCX

Device Driver

Other fingerprint

Fingerprint Sensor
ZK or URU2000 Sensor

ZKSoftware Inc.

Fingerprint Image

http://www.zksoftware.com

4

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

3. Software Installation
3.1 Disc Files and Directory
Open the ZKFinger SDK disc, and information about the directory and file
will appear as the following:

Setup.exe:Installation program for fingerprint Reader driver and Doggle
driver;
Demo:after the driver installed, can be used to demonstrate program of
fingerprint sensor;
Sdk:To store the SDK development example and documentation.
Raedme_cn.txt: Chinese installation instructions for fingerprint sensor;
Raedme_en.txt: English Installation instructions for fingerprint sensor;
Open the SDK directory, and the following directory and file information
will be shown:

Samples:samples for various development languages;
Biokey.ocx:Control library files.
5

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Manual_cn.pdf:SDK Chinese manual;
Manual_en.pdf:SDK English manual

3.2 Software Installation
Before installing ZKFinger SDK, please make sure that your operation
system and the configuration of your computer meet the requirements to run
the software.
Before the installation, if your computer has been connected with
a fingerprint Reader, you’d better pull it out.
1、Put the installation disc in the driver, and the computer will automatically
run the installation software. Click Next button, and you can enter the following
operation steps:
Press Installation button, and begin to install Fingerprint driver and Doggle
driver.
Until Step 1 Installation,the following two steps will be done automatically, if
the need to manually install Biokey.ocx ,please refer to following instructions :
2 、 Copy
Biokey.ocx
to
Windows
(c:\windows\system):
Biokey.ocx
Control Base File

system

directory

3、Register control Biokey.ocx:
c:\windows\system\regsvr32.exe c:\windows\system32\Biokey.ocx
ZKSoftware Inc.

http://www.zksoftware.com

6

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4、ActiveX Control Reference
ZKFinger SDK 4.0 Pro is divided into two controls: 1:1 and 1:N. For these
two, their interfaces are basically of the same property and method, and the
methods for the two interfaces only differ in the verification related to 1:N. In our
further description, we will try to display the two controls comprehensively, and
their differences will be labeled and illuminated.
VB language expression is used here, and fingerprint template Variant
variable show as one-dimension byte arrays.

4.1 Property
4.1.1 Active as Boolean
Read only
Whether the fingerprint Reader set by the currentSensorIndex has got ready
or not.

4.1.2 EngineValid as Boolean
Read only
Whether the fingerprint identification system is performing normally or not.
If the function initEngine has been used, effective result will be returned.

4.1.3 EnrollIndex As Long
Read only
7

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

The sampling order number at fingerprint registration, that is, the effective
times for successful fingerprint registration at present.

4.1.4 EnrollCount As Long
The times for sampling fingerprints at registration, whose value ranges from
one to four.

4.1.5 FPEngineVersion AS String
read only
The version number for the fingerprint identification system.

4.1.6 ImageHeight AS integer
Read only
The height of the fingerprint image.

4.1.7 ImageWidth AS integer
Read only
The width of the fingerprint image.

4.1.8 IsRegister As Boolean
Read only
Whether a fingerprint is being registered or not.

4.1.9 OneToOneThreshold As Boolean
Set the identification threshold value (1-100) for ZKFinger low-speed
fingerprint verification—one-to-one, and the default value is 10. The larger the
value, the lower the FAR and the higher the FRR.
ZKSoftware Inc.

http://www.zksoftware.com

8

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Notice: 1:1 control doesn’t have this property.

4.1.10 RegTplFileName As String
Set to save the file name of the fingerprint registration template when the
event OnEnrollToFile is taking place.

4.1.11 SensorCount As Long
Read only
The number of fingerprint Readers which are connected to the computer, and
if EngineValid is invalid, 0 is returned.

4.1.12 SensorIndex AS Long
Select the order number of the fingerprint head when multiple fingerprint
Readers are connected. The serial number starts from 0, and if the number is
smaller than 0, the fingerprint Reader will not work.

4.1.13 SensorSN As String
The serial number for hardware of the fingerprint Reader.

4.1.14 TemplateLen As Long
Read only
The byte length of the fingerprint registration template.
Notice: The template length is 1152 bytes for 1:N, and the template length is
310 bytes for 1:1.
9

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.1.15 Threshold As Long
Set the verification and identification threshold value (1-100) for the
fingerprint identification system, and the default value is 10. The larger the value,
the lower the FAR and the higher the FRR.

4.1.16 VerTplFileName As String
Set to save the file name of the fingerprint verification template when the
event OnCaptureToFile is taking place.

4.2 Method
4.2.1 The same method for the control interfaces of 1:1 and 1:N
4.2.1 Sub BeginEnroll()
Begin to register fingerprints, and the event OnEnroll will take place when
the registration completes.
4.2.2 Sub CancelEnroll()
Cancel the current status of fingerprint registration, that is, the operation
started from BeginEnroll will be cancelled by this function.
4.2.3 Function DongleIsExist As Boolean
Examine whether Doggle is existing or not.
ZKSoftware Inc.

http://www.zksoftware.com

10

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.2.4 Function DongleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As
Integer) As Boolean
Obtain four 16-digital integral (p1, p2, p3, p4) return values for the seed code
lp2. Doggle can compute a seed code by interior algorithm, which results in four
return codes. Seed code algorithm is not open, and by examining whether the
return codes are of the expected value we can examine whether Doggle is existing
or not.
4.2. 5 Function DongleUserID As Long
Read User ID in Doggle, and User ID will not repeat. Save it in specific
location within Doggle.
This function has been canceled, here in order to compatible with
before, we keep up this function.
4.2..6 Function DongleMemRead(Byval p1, p2 As Integer, buf) As Boolean
Read the p2 bytes started from p1 located in Doggle memory to Variant
variable buf (one-dimension byte array). There are altogether 24 bytes in the
memory, located from 0 to 23.
This function has been canceled, here in order to compatible with before,
we keep up this function.
4.2.7 Function DongleMemWrite(Byval p1, p2 As Integer, buf) As Boolean
Write Variant variable buf (one-dimension byte array) to the p2 bytes started
from p1 located in Doggle memory. There are altogether 24 bytes in the memory,
located from 0 to 23.
This function has been canceled, here in order to compatible with before,
we keep up this function.
4.2.8 Function GetTemplate()
Get the fingerprint template, which is obtained most recently.

11

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.2.9 Function GetFingerImage(Byval AFingerImage) As Boolean
Get the fingerprint image (BMP format), which is obtained most recently.
4.2.10 Function InitEngine() As Long
Initialize the fingerprint identification system. Property such as SensorCount,
SensorSN, EngineValid, ImageHeight and ImageWidth will not return accurate
results only after this function has been called. Return values:
0 Initialization succeeded.
1 The loading of the fingerprint identification driver failed.
2 Fingerprint Sensor has not been connected.
3 The fingerprint Reader appointed by the property SensorIndex dose not
exist (Notice: Set the property SensorIndex before calling the function).
Method EndEngine can be used to release the fingerprint device system.
4.2.11 Function VerFinger(byval regTemplate, verTemplate, AdoLearning As
Boolean, byval AregFeatureChanged As Boolean) As Boolean
Compare whether the feature templates for two pieces of fingerprints are
matched or not. Here, regTemplate represents fingerprint registration feature
templates, verTemplate expresses fingerprint verification feature templates which
are collected on the spot, AdoLearning denotes whether to carry out fingerprint
feature template learning updating or not, and AregFeatureChanged shows
whether the registration template regTemplate has been changed or not. True will
be returned when the two pieces of fingerprints are matched, and False will be
returned when not matched.
Explanation:
The fingerprint feature will vary to certain extent with the time, usually which
will not pose an influence on the verification of fingerprints. While by fingerpirnt
feature template learning updating, the system can obtain an integrated new
template, so as to lower the FRR.
ZKSoftware Inc.

http://www.zksoftware.com

12

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.2.12
Function
VerFingerFromFile(regTemplateFile
As
String,
verTemplateFile As String , AdoLearning As Boolean, byval
AregFeatureChanged As Boolean) As Boolean
Compare whether the feature templates for two pieces of fingerprints are
matched or not. Here, regTemplate represents fingerprint registration feature
templates, verTemplate expresses fingerprint verification feature templates which
are collected on the spot, AdoLearning denotes whether to carry out fingerprint
feature template learning updating or not, and AregFeatureChanged shows
whether the registration template regTemplate has been changed or not. True will
be returned when the two pieces of fingerprints are matched, and False will be
returned when not matched.
4.2.13 Function VerRegFingerFile(RegTemplateFile As String, verTemplate,
AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As
Boolean
Compare whether the feature templates for two pieces of fingerprints are
matched or not. Here, regTemplate represents previous fingerprint registration
feature templates in the file specified by FileName, verTemplate expresses
fingerprint feature templates which are collected on the spot, AdoLearning
denotes whether to carry out fingerprint feature template learning updating or not,
and AregFeatureChanged shows whether the registration template regTemplate
has been changed or not. True will be returned when the two pieces of fingerprints
are matched, and False will be returned when not matched.
4.2.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As Long,
aWidth As Long, aHeight As Long)
At the location specified by (x,y), display the fingerprint image in
accordance with the size specified by (aWidth, aHeight). HDC is the HDC for the
window in which the fingerprint will be shown.
13

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

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)
At the location specified by (x,y), display the fingerprint image in
accordance with the size specified by (aWidth, aHeight). HDC is the HDC for the
window in which the fingerprint will be shown. Here the fingerprint image is
surrounded by an ellipse.
4.2.16 Sub SaveBitmap(FileName As String)
Save the last fingerprint image to the bitmap file specified by FileName.
4.2.17 Sub SaveJPG(FileName As String)
Save the last fingerprint image to the Jpeg file specified by FileName.
4.2.18 Function SaveTemplate(FileName As String, Template) As Boolean
Save the feature template for the Template fingerprint to the file specified by
FileName.
4.2.19 function EncodeTemplate(ASour, var ADest As String) As Boolean
Transfer the Variant template Asour used by the control into the template
string Adest, which is BASE64 formatted.
4.2.20 function DecodeTemplate(const ASour As String, ADest) As Boolean
Transfer the template string Asour which is BASE64 formatted into the
Variant-typed template Asour used by the control.
The above-mentioned two methods are mainly used for saving database of
templates. Variant-typed templates are saved in the manner of binary-formatted
arrays, which are quite difficult for languages such as PB, VB, etc. Method
EncodeTemplate can transfer Variant-typed codes into strings, and method
ZKSoftware Inc.

http://www.zksoftware.com

14

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

DecodeTemplate can transfer string-typed codes into codes of Variant-typed. Here,
we should pay attention that the template length will be increased after the
template variable BASE64 code has been transferred into the string.
4.2.21 function EncodeTemplate1(ASour) As String
Transfer the Variant template Asour used by the control into the template
string, which is BASE64 formatted.
4.2.22 function DecodeTemplate1(const ASour As String) As Variant
Transfer the template string Asour which is BASE64 formatted into the
Variant-typed template used by the control.
4.2..23 Sub BeginCapture()
Set the current fingerprint device to begin to capture images, and method
CancelCapture can be used to forbid the current device to capture images.
4.2.24 Sub EndEngine()
Release the fingerprint device initialized by method InitEngine, and method
InitEngine can be utilized to re-initialize fingerprint device.
4.2.25 function VerFingerFromStr(regTemplateStr As String, verTemplateStr
As String, AdoLearning As Boolean, byval AregFeatureChanged As Boolean)
As Boolean
Compare whether the feature templates for two pieces of fingerprints are
matched or not. Here, regTemplateStr(BASE64 formatted string) represents
fingerprint registration feature templates, verTemplateStr(BASE64 formatted
string) expresses fingerprint verification feature templates which are collected on
the spot, AdoLearning denotes whether to carry out fingerprint feature template
learning updating or not, and AregFeatureChanged shows whether the registration
template regTemplate has been changed or not. True will be returned when the
15

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

two pieces of fingerprints are matched, and False will be returned when not
matched.
4.2.26 function GetTemplateAsString() As String
Get the fingerprint Verify or Register template, which is obtained most
recently. It may be called on OnCapture , OnEnroll, OnCaptureToFile,
OnEnrollToFile event. The return result is BASE64 formatted template string.

4.2.2 Method for 1:N control interface
4.2.27 Function AddRegTemplateToFPCacheDB(fpcHandle As Long, FPID
As Long, pRegTemplate) As Long
Add the fingerprint registration template pRegTemplate to the fingerprint
sensor’s high-speed buffer fpcHandle, and FPID is the label for adding
registration template.
4.2.28 Function AddRegTemplateFileToFPCacheDB(fpcHandle As Long,
FPID As Long, pRegTemplateFile As String) As Long
Add the previous fingerprint registration feature template in the file specified
by pRegTemplateFile to the fingerprint identification high-speed buffer
fpcHandle,and FPID, which must be equal to or larger than 0, is the label for
adding the registration template. If the return value is 1, it indicates a success, and
0 indicates a failure.
4.2.29 Function CreateFPCacheDB As Long
Create the fingerprint identification high-speed buffer. As for 1:N
identification, this function must be first called so as to obtain the fingerprint
identification buffer handle.
Explanation:
ZKSoftware Inc.

http://www.zksoftware.com

16

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

ZKFinger 1:1 low-speed verification speed is rather slow (about 30ms for PII
233), so fingerprints of 1:1 genre added to the buffer by calling the function
AddRegTemplateToFPCache can not be too many; otherwise, the verification
speed will be impacted. By IsOneToOneTemplate, we can judge whether the
fingerprint is of 1:1 type or not.
At the same time multiple buffers can be created for group comparison and
others.
4.2.30 Sub FlushFPImages ()
Delete buffer images in the current fingerprint device.
4.2.31 Sub FreeFPCacheDB( fpcHandle As Long)
Release the fingerprint identification high-speed buffer. FpcHandle is the
fingerprint identification buffer handle obtained by calling the function
CreateFPCacheDB.
4.2.32 Function IdentificationFromFileInFPCacheDB (fpcHandle As Long,
pVerTemplateFile As String,
Byval Score As Long, Byval
ProcessedFPNumber As Long) As Long
Compare all the registration templates in the fingerprint identification
high-speed buffer fpcHandle with the fingerprint verification template in the file
pVerTemplateFile. Score represents the highest score among ProcessedFPNumber
times of verification, and ProcessedFPNumber shows the times of verification.
The fingerprint label will be returned if the identification is successful, and –1 is
returned if failed.
Notice:
During the process of identification, if the verification score is equal to or
larger than the property Threshold, then it is considered that the verification is
successful. In this case, no further verification will be carried out for the rest of
fingerprint registration templates in the buffer, and this function returns the
17

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

fingerprint label for the fingerprint registration template which is matched
successfully;
If all the scores for the verification between all the fingerprint verification
templates and all the fingerprint identification templates located in the fingerprint
identification high-speed buffer, but meanwhile the highest score for the
verification is equal to or larger than Score, then it is viewed that the verification
is matched successfully. In this case, this function will return the label of the
fingerprint registration template which gets the highest verification score, whose
recommendation value is 9.
4.2.33 Function IdentificationInFPCacheDB (fpcHandle As Long,
pVerTemplate, Byval Score As Long, Byval ProcessedFPNumber As Long)
As Long
Compare all the registration templates in the fingerprint identification
high-speed buffer fpcHandle
with the fingerprint verification template
pVerTemplate. Score represents the highest score among ProcessedFPNumber
times of verification, and ProcessedFPNumber shows the times of verification.
The fingerprint label will be returned if the identification is successful, and –1 is
returned if failed.
Notice:
During the process of identification, if the verificaiton score is equal to or
larger than the property Threshold, then it is considered that the verification is
successful. In this case, no further verification will be carried out for the rest of
fingerprint registration templates in the buffer, and this function returns the
fingerprint label for the fingerprint registration template which is matched
successfully;
If all the scores for the verification between all the fingerprint verification
templates and all the fingerprint identification templates located in the fingerprint
identification high-speed buffer, but meanwhile the highest score for the
verification is equal to or larger than Score, then it is viewed that the verification
ZKSoftware Inc.

http://www.zksoftware.com

18

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

is matched successfully. In this case, this function will return the label of the
fingerprint registration template which gets the highest verification score, whose
recommendation value is 9.
4.2.34 Function IsOneToOneTemplate (ATemplate) As Boolean
Judge the current fingerprint feature template Atemplate is a ZKFinger 1:1
low-speed verification feature template.
4.2.35 Function ModifyTemplate(byval Atemplate, AOneToOne As Boolean)
As Boolean
According AoneToOne modify the fingerprint feature template Atemplate to
a ZKFinger 1:1 low-speed verification feature template or a high-speed
verification feature template.
4.2.36 Function RemoveRegTemplateFromFPCacheDB (fpcHandle As Long,
FPID As Long) As Long
Delete the fingerprint registration template which is labeled as FPID located
in the fingerprint identification high-speed buffer fpcHandle. If the return value is
1, it indicates a success, and 0 represents a failure.
4.2.37 Sub CancelCapture()
Forbid the current fingerprint device to capture images, and the method
BeginCapture can be used for the fingerprint device to begin to capture images.
4.2.38 Function AddRegTemplateStrToFPCacheDB(fpcHandle As Long,
FPID As Long, ARegTemplateStr As String) As Long
Add the previous fingerprint registration feature template ARegTemplateStr
which is BASE64 code string to the fingerprint identification high-speed buffer
fpcHandle,and FPID, which must be equal to or larger than 0, is the label for
adding the registration template. If the return value is 1, it indicates a success, and
19

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

0 indicates a failure.
4.2.39 Function IdentificationFromStrInFPCacheDB (fpcHandle As Long,
AVerTemplateStr As String,
Byval Score As Long, Byval
ProcessedFPNumber As Long) As Long
Compare all the registration templates in the fingerprint identification
high-speed buffer fpcHandle with the verification template AverTemplateStr,
which is BASE64 code formatted string. Score represents the highest score among
ProcessedFPNumber times of verification, and ProcessedFPNumber shows the
times of verification. The fingerprint label will be returned if the identification is
successful, and –1 is returned if failed.
Notice:
During the process of identification, if the verification score is equal to or
larger than the property Threshold, then it is considered that the verification is
successful. In this case, no further verification will be carried out for the rest of
fingerprint registration templates in the buffer, and this function returns the
fingerprint label for the fingerprint registration template which is matched
successfully;
If all the scores for the verification between all the fingerprint verification
templates and all the fingerprint identification templates located in the fingerprint
identification high-speed buffer, but meanwhile the highest score for the
verification is equal to or larger than Score, then it is viewed that the verification
is matched successfully. In this case, this function will return the label of the
fingerprint registration template which gets the highest verification score, whose
recommendation value is 9.
4.2.40 Sub SetAutoIdentifyPara(AutoIndentify As Boolean, fpcHandle As
Long, Score As Long)
Set the Internal Recognition Style AutoIndentify, fingerprint identification
high-speed buffer fpcHandle and the SCORE which the same as the parameter
ZKSoftware Inc.

http://www.zksoftware.com

20

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Score of IdentificationFromInFPCacheDB method. Refer OnCapture event.

4.2.3 Methods for 1:1 control interface
4.2.41 Function AddBitmap(BitmapHandle As OLE_HANDLE, ValidRectX1
As Long, ValidRectY1 As Long, ValidRectX2 As Long, ValidRectY2 As Long,
DPI As Long) As Boolean
Use the bitmap specified by BitmapHandle for registration or verification.
These four parameters, ValidRectX1、ValidRectY1、 ValidRectX2、ValidRectY2
define the effective area for the image. If the defined image area is invalid, then
the whole targeted image will be captured, and DPI defines the resolution of the
image.
4.2.42 Function AddImageFile(FileName As String, DPI As Long) As Boolean
Use the fingerprint image file (supporting such formats as
BMP,TIFF,JPG,GIF ) specified by FileName for registration or verification. DPI
defines the resolution of the image.

4.3 Events
4.3.1 OnCapture(ActionResult AS Boolean, ATemplate)
when the AutoIdentify(set by SetAutoIdentifyPara method) value set to False,
Capture the fingerprint verification template Atemplate for verification.
ActionResult =true indicates that the fingerprint template is obtained successfully,
and False represents a failure.
when the AutoIdentify(set by SetAutoIdentifyPara method) value set to True,
the ATemplate is fingerprint identification result. The result is one-dimension
array,please refer the following definition:
21

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ATemplate[0]
ATemplate[1]
ATemplate[2]
ATemplate[3]

ZKFinger SDK 4.0 Manual

ID value, ID value is -1 if failed
return one-to-many recognition score
the processed fingerprint number for 1:N
the processed fingerprint number for 1:1

4.3.2 OnCaptureToFile(ActionResult AS Boolean)
Obtain the fingerprint verification template for verification, and the template
is saved in a file, whose name is set by the property VerTplFileName.
ActionResult =true indicates that the fingerprint template is obtained successfully,
and False represents a failure.

4.3.3 OnEnroll(ActionResult AS Boolean, ATemplate)
Call this even when the user fingerprint registration completes. ActionResult
=true indicates that the registration is successful, and the fingerprint feature
template can be captured by using pTemplate property; False represents a failure.

4.3.4 OnEnrollToFile(ActionResult AS Boolean)
Call this event when the user fingerprint registration completes. ActionResult
=true indicates that the registration is successful, and the fingerprint feature
template is saved in a file, whose name is set as the property RegTplFileName;
False represents a failure.

ZKSoftware Inc.

http://www.zksoftware.com

22

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

4.3.5 OnFeatureInfo(AQuality As Long)
Obtain the fingerprint’s initial feature. Quality represents the quality of this
fingerprint’s feature, and it may have the following values:
0: Good fingerprint feature
1: Insufficient feature points
2: Other reasons resulting in the incapability to capture the fingerprint
feature

4.3.6 OnImageReceived(byval AImageValid As Boolean)
Call this event if the device receives the fingerprint image, or the fingerprint
image is added by AddImageFile and AddBitmap. AimageValid indicates whether
to extract a template or not. If it is set as False, the system will not extract
templates after it has captured the fingerprint image.

4.3.7 OnFingerTouching
Call this event when press finger on sensor。

4.3.8 OnFingerLeaving
Call this event when removed finger from sensor。

23

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

http://www.zksoftware.com

24

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

5、Task Flow Description

IsRegister = True

BeginEnroll
Image
OnImageReceived

OnFeatureInfo

No
1-4
Yes

Template

OnEnroll
OnEnrollToFile

25

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

IsRegister = False
BeginCapture

OnImageReceived

Image

OnFeatureInfo

Template
OnCapture
OnCaptureToFile

ZKSoftware Inc.

http://www.zksoftware.com

26

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Task Flow Description:
After the fingerprint Sensor has entered the working status, call BeginEnroll
to enter fingerprint registration status, and call BeginCapture to enter fingerprint
verification status. The working mode is based on event motivation, and events
can be triggered in an order as shown in the above sketch graph.
It is usually needed to press the same finger for 1 to 4 times for fingerprint
registration, and a fingerprint registration template will be obtained after the
identification system integrates them. The times number needed for pressing the
finger at registration is defined by the control property EnrollCount, and events
OnEnroll and OnEnrollToFile will be triggered if the defined times number is
arrived at.
At fingerprint verification, events OnCapture and OnCaptureToFile will be
triggered after pressing the finger. At this moment, VerFinger or
IdentificationInFPCacheDB can be called to carry out 1:1 or 1:N verification.
It should be paid attention to that event OnFeatureInfo will be triggered
when a finger is being pressed for each time. If the fingerprint template of the
finger which is being pressed, is not qualified, this time the image captured is
invalid, and the finger should be re-pressed.

27

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

6、Common Questions Description
6.1 The difference between 1:1 Control and
1:N Control
1:1 Control is mainly used for development projects which need 1:1
verification, and usually the currently-verified client’s PIN should be entered in
advance, and after that one or several templates he/she has registered are obtained
for verification; while 1:N Control does not require entering the client’s PIN, and
this client can be identified by the client’s fingerprint out of the registered
fingerprint templates.
1:1 Control mainly aims to achieve a high pass rate and a relatively high
accuracy rate; 1:N Control is principally designed to obtain a high verification
speed and a relatively high accuracy rate.
1:1 Control’s maximum template length is only 310 bytes, while that for 1:N
Control is 1152 bytes. Because 1:N requires high-speed verification, and a
remarkably low RAR, relatively more template feature information should be
saved.

6.2

Read-in

and

Read-out

Fingerprint

Templates in Database
In SDK fingerprint templates are saved and called by means of Variant
variable. What is stored is one-dimension binary arrays, which can not be read-in
ZKSoftware Inc.

http://www.zksoftware.com

28

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

and read-out by SQL sentences as for character strings. There are two solutions:
1、 Method EncodeTemplate and method DecodeTemplate are able to make
BASE64 code transfer between Variant variables and string variables. One
point, which should be improved, is that after variables being transferred into
strings, the template length will be increased by about 1/3.
2、 Directly work on Variant variables. An example is shown as the following:
Delphi, CB:
procedure TFPProcess.SaveFPData(AQuery: TADOQuery; AFingerID: Integer; AFPData:
OleVariant);
var
pData: PChar;
begin
with AQuery do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
Open;
if IsEmpty then
Append
else
Edit;
FieldByName('FingerID').Value := AFingerID;
//Save the fingerprint template
with TBlobStream(CreateBlobStream(FieldByName('Template'), bmWrite)) do begin
pData := VarArrayLock(AFPData);
try
Write(pData^, VarArrayHighBound(AFPData, 1) - VarArrayLowBound(AFPData, 1) + 1);
finally
VarArrayUnlock(AFPData);
end;
29

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Free;
end;
Post;
Close;
end;
end;
procedure TFPProcess.GetFPData(AQuery: TADOQuery; AFingerID: Integer; var AFPData:
OleVariant);
var
pData: PChar;
begin
with AQuery do begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID));
Open;
//read-out data
if not IsEmpty then
with TBlobStream(CreateBlobStream(FieldByName('Template'), bmRead)) do begin
AFPData := VarArrayCreate([0, Size + 1], varByte);
pData := VarArrayLock(AFPData);
try
Read(pData^, Size);
finally
VarArrayUnlock(AFPData);
end;
Free;
end;
Close;
end;
ZKSoftware Inc.

http://www.zksoftware.com

30

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

end;

For other languages, please refer to the technical discussion forum on
www.zksoftware.com.

6.3 Software Doggle and Authorized License
Documentation
The running of SDK requires software Doggle and authorized license
documentation. The difference between software Doggle and authorized license
documentation is that software Doggle is independent of the fingerprint Sensor
which is being used, while authorized license documentation corresponds to the
fingerprint Sensor which is being used. That is, software Doggle can be used with
all fingerprint Sensors, but authorized license documentation can only be used
with the authorized fingerprint Sensor.
This item has been canceled in the 4.0 Version

6.4 The use of 1:N high-speed buffer
For 1:N verification, it is needed to categorize the templates to be verified; at
the same time, in order to achieve higher speed, SDK needs to create memory first,
and then add registered fingerprints to the memory. In fact, high-speed buffer is a
kind of memory. In practice, firstly we need to create the buffer by the method
CreateFPCahceDB,
and
then
by
methods
such
as,
AddRegTemplateToFPCahceDB,RemoveRegTemplateFromFPCacheDB and so
on, to add or delete fingerprint registration templates, and lastly free the memory
by the method FreeFPCacheDB.
We can create multiple high-speed buffers at the same time so as to realize
31

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

such functions as grouping query.

6.5 Using fingerprint images
In projects where 1:1 Control is used, quite often you are required to save
fingerprint images, or to obtain plane fingerprint images directly from scanning.
Thus, 1:1 Control SDK provides methods, which are capable of capturing
fingerprint registration templates directly from plane fingerprint images, such as
AddImageFile. But what should be paid attention to is that images should be
captured correctly, and their resolution must not be less than 350DPI.
Notice: SDK in Lite Version dose not provide these methods.

6.6

Setting

fingerprint

identification

threshold
In 1:1 Control, the recommendation value for the property Threshold is 10.
In this case, FAR is about 0.01%, and FRR ranges from 1.5% to 2%.
In 1:1 Control, the recommendation value for the property Threshold is 10.
In this case, FAR is about 0.001%, FRR is about 3%, and the recommendation
value for the property OneToOneThreshold is 10.

6.7

Solutions

to

low-quality

fingerprint

templates for 1:N identification
In 1:N Control, at fingerprint registration, the system will automatically label
fingerprints by categories in terms of quality, and save them in templates.
ZKSoftware Inc.

http://www.zksoftware.com

32

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Templates of low quality are titled as ZKFinger 1:1 low-speed verification feature
templates, and 1:1 in this term is a concept quite different from 1:1 in 1:1 Control,
which should not be mixed up. Registration templates of high quality are labeled
as ZKFinger high-speed verification feature templates.
In normal application environments, about 5% of the total fingerprint
registration templates will be labeled as low-speed verification feature templates.
The method IsOneToOneTemplate can be used to judge whether the template is a
low-speed verification feature template, and the method ModifyTemplate can be
used to modify grouping labels which distinguish templates of high quality from
those of low quality forcefully.
ZKFinger 1:1 low-speed verification is quite slow (about 30ms for PII 233),
thus not too many low-speed verification feature templates can be added to the
high-speed buffer by the method AddRegTemplateToFPCache; otherwise the
verification speed will be impacted.
In 1:N Control, fingerprint identification by IdentificationInFPCacheDB is
carried out in the way as shown in the following flow chart:

33

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String,
Byval Score As Long, Byval ProcessedFPNumber As Long) As Long

Verification
Templates

Classify Templates

Search for fingerprints in the high-speed buffer according to grouping query

Verify Fingerprints

Yes
Verification Score>=Threshold

N
Y

Verification

N

Save into
questionable
fingerprints list

All Verification

Y
Highest score for question

Y

fingerprints>=Score

N

ZKSoftware Inc.

http://www.zksoftware.com

34

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

1:1 low-speed verify questionable fingerprints

Verification result

TRUE

FALSE
N
All

Y
1:1 verify low-speed fingerprints in the high-speed buffer

TRUE
Verification
Y
N
All

Yes
Verificatio

Return

35

ZKSoftware Inc.

Verification

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

6.8 Connecting multiple fingerprint Sensors
In the window one control responds to one fingerprint Sensor. Different
fingerprint Sensors can be set by using SensorIndex, and the number of
fingerprint Sensors can be obtained by the property SensorCount. If you want to
differentiate the fingerprint Sensors from each other, utilize the property
SensorSN, which is unique for each fingerprint Sensor.
ZK6000 Fingerprint sensor only is aollowed to one unit connect with

ZKSoftware Inc.

http://www.zksoftware.com

36

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

7、DEMO Program Description
Here VB sample program of 1:N Control is used for description (which is similar
to that of 1:1 Control).
At first it must be confirmed that 1:N Control has been registered, Doggle has
been plugged into the parallel port or authorized documentation has been copied
to the path of the current application program, and the fingerprint Sensor driver
has been installed.
Run Demo in VB, and the following form will appear:

The name of the window fingerprint control is ZKFPEngX1.

37

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

At first, press Initialize button to initialize the fingerprint Sensor. If the
initialization is successful, a prompt message which indicates a success will be
shown.
The initialization code is as the following:
If ZKFPEngX1.InitEngine = 0 Then
MessageBox 0, "Initialization succeeds!", "Prompt message", 0
StatusBar.Caption = "Fingerprint Sensor connection"
TextSensorCount.Text = ZKFPEngX1.SensorCount & ""
TextSensorIndex.Text = ZKFPEngX1.SensorIndex & ""
TextSensorSN.Text = ZKFPEngX1.SensorSN
cmdInit.Enabled = False
FMatchType = 0
End If
Press the Register Fingerprint button to enter the fingerprint registration status,
and the code is like the this:
If Trim(TextFingerName.Text) = "" Then
MessageBox 0, "Please enter the fingerprint name label! ", "False", 0
Exit Sub
End If
ZKFPEngX1.BeginEnroll
StatusBar.Caption = "Start registration"
At this moment, the fingerprint Sensor is under the status of registration, and
every time pressing a finger will trigger events OnImageReceived (display
images),and OnFeatureInfo(judge whether the fingerprint is qualified or not).
ZKSoftware Inc.

http://www.zksoftware.com

38

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

Pressing a finger for one or four effective times (not counting times if the finger is
unqualified) will trigger events OnEnroll and OnEnrollToFile, and the specific
pressing times number is set by the property EnrollCount. OnEnroll code is like
this :
Dim i As Long
If Not ActionResult Then
MessageBox 0, "Fingerprint registration failed! ", "Warning", 0
Else
MessageBox 0, "Fingerprint registration succeeded!", "Message", 0
FRegTemplate = ATemplate
ZKFPEngX1.SaveTemplate "c:\fingerprint.tpl", ATemplate
ZKFPEngX1.AddRegTemplateFileToFPCacheDB fpcHandle, FingerCount,
"c:\fingerprint.tpl"
ReDim Preserve FFingerNames(FingerCount + 1)
FFingerNames(FingerCount) = TextFingerName.Text
FingerCount = FingerCount + 1
End If
Parameter ActionResult=True indicates successful registration, and parameter
Atemplate represents the fingerprint registration template; otherwise the
registration failed.
Press the button Verify Fingerprint to enter the status of fingerprint verification,
and the fingerprint Sensor will be under the status of verification. Pressing a
finger will trigger events OnImageReceived (display images) and OnFeatureInfo
(judge whether the finger is qualified or not), and a qualified fingerprint will
trigger events OnCapture and OnCaptureToFile ( verify by the verification
method).
39

ZKSoftware Inc.

http://www.zksoftware.com

ZKSoftware Inc.

ZKFinger SDK 4.0 Manual

OnCapture code is like this:
Dim fi As Long, i As Long
Dim Score As Long, ProcessNum As Long
Dim RegChanged As Boolean
StatusBar.Caption = "capture fingerprint feature"
If FMatchType = 1 Then '1:1
If ZKFPEngX1.VerFinger(FRegTemplate, ATemplate, False, RegChanged)
Then
MessageBox 0, "Fingerprint verification succeeded! ", "Prompt
message", 0
Else
MessageBox 0, "Fingerprint verification failed! ", "Prompt message", 0
End If
'If ZKFPEngX1.VerRegFingerFile("c:\fingerprint.tpl", ATemplate) Then
'
MessageBox 0, "File fingerprint verification succeeded! ", "Prompt
message", 0
'Else
'
MessageBox 0, "File fingerprint verification failed! ", "Prompt
message", 0
'End If
ElseIf FMatchType = 2 Then '1:N
Score = 8
fi = ZKFPEngX1.IdentificationInFPCacheDB(fpcHandle, ATemplate, Score,
ProcessNum)
If fi = -1 Then
MessageBox 0, "Fingerprint verification failed!", "Prompt message", 0
Else
MessageBox 0, "Fingerprint verification succeeded ! Name=" &
ZKSoftware Inc.

http://www.zksoftware.com

40


Documentos relacionados


Documento PDF zksoap
Documento PDF facebooks1
Documento PDF de angelo et al 2010 jwm track identification
Documento PDF quest locjack security system flyer
Documento PDF how to design for your brand 1
Documento PDF candlesticks for support and resistance


Palabras claves relacionadas