Sei sulla pagina 1di 63

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Fingerprint SDK 2009 Developer's Manual

Fingerprint SDK 2009 Developer's Manual Fingerprint SDK 2009 Developer's Manual Griaule

Fingerprint SDK 2009 Developer's Manual Griaule Biometrics © 2009

Griaule Biometrics Fingerprint SDK and GrFinger are trademarks of Griaule Biometrics LTDA. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Manual Conventions

Iconstrademarks of their respective owners. Manual Conventions Definitions and Acronyms Icons The icons below indicate that

Definitions and Acronymsof their respective owners. Manual Conventions Icons Icons The icons below indicate that a section applies

Icons

The icons below indicate that a section applies to a specific integration type: DLL, ActiveX or Java application/applet.

This icon indicates that the section applies to Fingerprint SDK DLL only.integration type: DLL, ActiveX or Java application/applet. This icon indicates that the section applies to Fingerprint

This icon indicates that the section applies to Fingerprint SDK ActiveX component only.that the section applies to Fingerprint SDK DLL only. This icon indicates that the section applies

This icon indicates that the section applies to Fingerprint SDK Java for Windows only.section applies to Fingerprint SDK ActiveX component only. The icons below are used to get reader's

The icons below are used to get reader's attention to any important information.

This icon usually gives hints to make something easier: learning, understanding, programming, deploying, etc.to get reader's attention to any important information. This icon is used to indicate a very

This icon is used to indicate a very important section that should not be skipped.learning, understanding, programming, deploying, etc. This icon indicates a potential risk to system integrity, a

This icon indicates a potential risk to system integrity, a risk of malfunctioning, etc. The section must not be skipped and you should read it carefully.a very important section that should not be skipped. Definitions and Acronyms IDE - An Integrated

Definitions and Acronyms

IDE - An Integrated Development Environment (IDE) is a software that assists programmers to develop software. It normally consists of a source code editor, a compiler and/or interpreter, build-automation tools, and (usually) a debugger. The Fingerprint SDK ActiveX Component can be used in many IDEs, like Microsoft Visual Studio and Borland Delphi.

DLL - A Dynamic Link Library (DLL) is a shared library used in Microsoft Windows. A single instance of a shared library can be used by many running programs without being replicated for each program, saving RAM and disk space. The Fingerprint SDK library can be used as a Windows DLL.

SDK - A Software Development Kit (SDK) is a set of development tools, documents, libraries and/or sample codes that allows a programmer to create applications for a certain software package. The Fingerprint SDK allows a programmer to create applications with biometric capabilities.

FRR - The False Rejection Rate (FRR) is defined as the percentage of identification instances in which false rejection occurs. It's normally expressed as a probability.

FAR - The False Acceptance Rate (FAR) is the measure of the likelihood that the biometric security system will incorrectly accept an access attempt by an unauthorized user.

DPI - The Dots per Inch (DPI) measure indicates the resolution of images. The more dots per inch, the higher the resolution. The DPI is an important information about fingerprint images, affecting both the image quality and matching accuracy.

Template - A template is the feature set extracted from a fingerprint image. The verification and identification functions in Fingerprint SDK library works only with templates. Once the template is extracted the library doesn't need the fingerprint image anymore for any verification or identification process.

Callback - The callback scheme is used in event-driven programs where the program registers a function (a "callback handler") to handle a certain event. The program does not call the handler directly: when the event

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

occurs, another program or library or even the operating system calls the handler, passing it arguments which describe the event.

ActiveX - This is the Microsoft specification for reusable components. ActiveX is based on the Component Object Model (COM), an open standard that specifies how components interact and interoperate. Somewhat like a DLL, ActiveX allows packaging code to create highly reusable components.

regsvr32 - This is a tool to register and unregister Object Linking and Embedding (OLE) controls, such as DLLs and ActiveX controls. For further info about this tool, check the Microsoft's regsvr32 page.

JNI - The Java Native Interface (JNI) is a programming framework that allows Java code running in the Java Virtual Machine (JVM) to call and be called by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages, such as C, C++ and assembly.

Java applet - A Java applet is a Java program that can be included as part of a web page.

Getting Started

Fingerprint SDK is a fingerprint recognition library that comes packaged with a Software Development Kit (SDK), allowing you to integrate biometrics in a wide range of applications. Thanks to its support for several programming languages, richness of code samples, and its thorough documentation, you'll start developing your application in a matter of minutes.

Quick Start Guidestart developing your application in a matter of minutes. Features What's New on Fingerprint SDK About

Featuresyour application in a matter of minutes. Quick Start Guide What's New on Fingerprint SDK About

What's New on Fingerprint SDKin a matter of minutes. Quick Start Guide Features About Fingerprint SDK Editions Upgrading from GrFinger

About Fingerprint SDK EditionsQuick Start Guide Features What's New on Fingerprint SDK Upgrading from GrFinger 4.2 to Fingerprint SDK

Upgrading from GrFinger 4.2 to Fingerprint SDKNew on Fingerprint SDK About Fingerprint SDK Editions FingerCap USB Driver Licensing Support Quick Start Guide

FingerCap USB DriverSDK Editions Upgrading from GrFinger 4.2 to Fingerprint SDK Licensing Support Quick Start Guide Downloading Download

Licensingfrom GrFinger 4.2 to Fingerprint SDK FingerCap USB Driver Support Quick Start Guide Downloading Download a

Support4.2 to Fingerprint SDK FingerCap USB Driver Licensing Quick Start Guide Downloading Download a trial version

Quick Start Guide

Downloading

Download a trial version of Fingerprint SDK at www.griaule.com, in "Downloads" section.

Installing

To install Fingerprint SDK, run the installation program and follow the on-screen instructions.

Installing your fingerprint reader

Check the Fingerprint Readers Installation section in this manual.

Folders Overview

Check the SDK Folders Structure section in this manual.

Getting licenses

Check the Licensing section in this manual.

Developing using Fingerprint SDK

section in this manual. Developing using Fingerprint SDK A good starting point is copying and modifying

A good starting point is copying and modifying the SDK samples.

The first step to start developing with Fingerprint SDK is choosing between Fingerprint SDK DLL, ActiveX or Java. All formats have the same functionalities, so choose the most appropriate for your needs, programming environment and skills. Next, check this manual and the sample codes to learn what you need to build your application.

Deploying a Fingerprint SDK based application

Check the Deploying a Fingerprint SDK Based Application section in this manual.

Features

Technical CharacteristicsSDK Based Application section in this manual. Features Fingerprint Readers Support Programming Languages Support

Fingerprint Readers Supportsection in this manual. Features Technical Characteristics Programming Languages Support Sample Codes Quality

Programming Languages SupportTechnical Characteristics Fingerprint Readers Support Sample Codes Quality One-to-many Identification Licensing

Sample CodesFingerprint Readers Support Programming Languages Support Quality One-to-many Identification Licensing Technical

QualityReaders Support Programming Languages Support Sample Codes One-to-many Identification Licensing Technical

One-to-many IdentificationSupport Programming Languages Support Sample Codes Quality Licensing Technical Characteristics Capture Detects

LicensingSupport Sample Codes Quality One-to-many Identification Technical Characteristics Capture Detects fingerprint

Technical Characteristics

Capture

Detects fingerprint readers plug/unplug;Identification Licensing Technical Characteristics Capture Automatic finger detection; Supports BMP files for

Automatic finger detection;Capture Detects fingerprint readers plug/unplug; Supports BMP files for fingerprint image saving/loading;

Supports BMP files for fingerprint image saving/loading;fingerprint readers plug/unplug; Automatic finger detection; Maximum image size of 1280 x 1280 pixels; Minimum image

Maximum image size of 1280 x 1280 pixels;Supports BMP files for fingerprint image saving/loading; Minimum image size of 50 x 50 pixels; Maximum

Minimum image size of 50 x 50 pixels;saving/loading; Maximum image size of 1280 x 1280 pixels; Maximum resolution of 1000 DPI; Minimum resolution

Maximum resolution of 1000 DPI;of 1280 x 1280 pixels; Minimum image size of 50 x 50 pixels; Minimum resolution of

Minimum resolution of 125 DPI;size of 50 x 50 pixels; Maximum resolution of 1000 DPI; Extraction Average extraction time of

Extraction

Average extraction time of 100ms*;of 1000 DPI; Minimum resolution of 125 DPI; Extraction Maximum image size of 500 x 500

Maximum image size of 500 x 500 pixels**;of 125 DPI; Extraction Average extraction time of 100ms*; Minimum image size of 50 x 50

Minimum image size of 50 x 50 pixels;time of 100ms*; Maximum image size of 500 x 500 pixels**; Average template size of 400

Average template size of 400 bytes*;100ms*; Maximum image size of 500 x 500 pixels**; Minimum image size of 50 x 50

Matching

Fingerprint SDK 2009 Developer's Manual

Identification speed (IDENTIFICATION EDITION): up to 35000/s***Fingerprint SDK 2009 Developer's Manual Identification speed (VERIFICATION EDITION): up to 100/s* *** Verification

Identification speed (VERIFICATION EDITION): up to 100/s* ***speed (IDENTIFICATION EDITION): up to 35000/s*** Verification speed (IDENTIFICATION EDITION): up to 100/s*

Verification speed (IDENTIFICATION EDITION): up to 100/s* ***speed (VERIFICATION EDITION): up to 100/s* *** Verification speed (VERIFICATION EDITION): up to 100/s* ***

Verification speed (VERIFICATION EDITION): up to 100/s* ***speed (IDENTIFICATION EDITION): up to 100/s* *** Notes: * Images of 300 x 300 pixels. Machine:

Notes:

* Images of 300 x 300 pixels. Machine: Pentium4 2.8GHz 512MB.

** Larger images are cropped.

*** Images of 100 x 100 pixels. Machine: Pentium4 2.8GHz 512MB.

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Fingerprint Readers Support

Usually the SDKs provided by the fingerprint readers manufacturers support only their own devices. The support for multiple readers in Fingerprint SDK allows you to choose the more suitable reader for your needs. It also makes the deployment of such devices easier and assures that you will be able to choose the one that fits your customer's needs even after your application deployment.

Supported Fingerprint Readers

Microsoft Fingerprint Readeryour application deployment. Supported Fingerprint Readers Microsoft Wireless IntelliMouse Explorer with Fingerprint

Microsoft Wireless IntelliMouse Explorer with Fingerprint ReaderSupported Fingerprint Readers Microsoft Fingerprint Reader Microsoft Optical Desktop with Fingerprint Reader

Microsoft Optical Desktop with Fingerprint ReaderWireless IntelliMouse Explorer with Fingerprint Reader DigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B

DigitalPersona U.Are.U 4000Reader Microsoft Optical Desktop with Fingerprint Reader DigitalPersona U.Are.U 4000B Testech Bio-I CYTE Secugen

DigitalPersona U.Are.U 4000BDesktop with Fingerprint Reader DigitalPersona U.Are.U 4000 Testech Bio-I CYTE Secugen Hamster III M2SYS M2-S

Testech Bio-I CYTEDigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B Secugen Hamster III M2SYS M2-S Fingerprint Reader Biotouch /

Secugen Hamster IIIU.Are.U 4000 DigitalPersona U.Are.U 4000B Testech Bio-I CYTE M2SYS M2-S Fingerprint Reader Biotouch / Futronic FS80

M2SYS M2-S Fingerprint ReaderU.Are.U 4000B Testech Bio-I CYTE Secugen Hamster III Biotouch / Futronic FS80 Nitgen Hamster I /

Biotouch / Futronic FS80Bio-I CYTE Secugen Hamster III M2SYS M2-S Fingerprint Reader Nitgen Hamster I / Hamster II Certis

Nitgen Hamster I / Hamster IIIII M2SYS M2-S Fingerprint Reader Biotouch / Futronic FS80 Certis Image Orcanthus Crossmatch V250 / V300

Certis Image OrcanthusBiotouch / Futronic FS80 Nitgen Hamster I / Hamster II Crossmatch V250 / V300 / V300

Crossmatch V250 / V300 / V300 LC / V300 LC2 / V500FS80 Nitgen Hamster I / Hamster II Certis Image Orcanthus Fingerprint SDK multiple readers support allows

Fingerprint SDK multiple readers support allows using on a single machine, and at the same time, one Crossmatch device, up to 127 Testech devices, one Secugen device or one Nitgen device, one Certis device, up to 127 M2SYS devices, up to 127 Futronic devices, up to 127 DigitalPersona devices and up to 127 Microsoft devices.

Programming Languages Support

Most SDKs provide a cumbersome DLL as their unique interface, needing you to create import files for the language you're using, among other obstacles. Fingerprint SDK supports multiple programming languages, including Java (Windows only), Delphi, Visual Basic 6, C++, C++.NET, C#, VB.NET, VBA and Visual FoxPro 8. ActiveX, DLL and Java components are available for Windows platform.

Sample Codes

The Fingerprint SDK comes packaged with fifteen detailed and complete application samples, along with their source code, in several programming languages. The samples cover all Fingerprint SDK functions and provide an easy starting point for development.

Quality

Griaule's fingerprint recognition algorithm was successfully tested among the world's best fingerprint recognition systems, on a test held by the United States National Institute of Standards and Technology (NIST) in

2003.

The Griaule fingerprint recognition algorithms (P066) get the first position of the average ERR in FVC 2006. The FVC (Fingerprint Verification Competition) is the world’s largest competition for fingerprint verification algorithms.

One-to-many Identification

Most solutions offer only one-to-one verification or one-to-little identification. Fingerprint SDK is capable of making unlimited one-to-many identification.

Licensing

Fingerprint SDK offers a number of licensing options to meet your needs. Please visit Griaule Web Site to know about it.

What's New on Fingerprint SDK

Added support to Microsoft Fingerprint Reader version 2.0 (PID 0x00CA) directly on fingercap driver;Site to know about it. What's New on Fingerprint SDK Added support to Biotouch / Futronic

Added support to Biotouch / Futronic FS80 directly on fingercap;version 2.0 (PID 0x00CA) directly on fingercap driver; Added support to Nitgen Hamster I / Hamster

Added support to Nitgen Hamster I / Hamster II;support to Biotouch / Futronic FS80 directly on fingercap; Added support to Certis Image Orcanthus; Added

Added support to Certis Image Orcanthus;fingercap; Added support to Nitgen Hamster I / Hamster II; Added support to Microsoft Wireless IntelliMouse

Added support to Microsoft Wireless IntelliMouse Explorer with Fingerprint Reader directly on fingercap;I / Hamster II; Added support to Certis Image Orcanthus; Added support to Certis Image Orcanthus;

Added support to Certis Image Orcanthus;Explorer with Fingerprint Reader directly on fingercap; Added support to Microsoft Optical Desktop with Fingerprint

Added support to Microsoft Optical Desktop with Fingerprint Reader directly on fingercap;on fingercap; Added support to Certis Image Orcanthus; Added support to M2SYS M2-S Fingerprint Reader directly

Added support to M2SYS M2-S Fingerprint Reader directly on fingercap;Desktop with Fingerprint Reader directly on fingercap; Added support of Bio-i Cyte directly on fingercap; Improved

Added support of Bio-i Cyte directly on fingercap;to M2SYS M2-S Fingerprint Reader directly on fingercap; Improved support for all fingerprint readers; Added plugins

Improved support for all fingerprint readers;Added support of Bio-i Cyte directly on fingercap; Added plugins to all supported fingerprint readers; Dropped

Added plugins to all supported fingerprint readers;on fingercap; Improved support for all fingerprint readers; Dropped support for Windows NT / 98 /

Dropped support for Windows NT / 98 / Me;readers; Added plugins to all supported fingerprint readers; Fixed some minor bugs from GrFinger 4.2; Improved

Fixed some minor bugs from GrFinger 4.2;readers; Dropped support for Windows NT / 98 / Me; Improved robustness; Dropped the banner added

Improved robustness;NT / 98 / Me; Fixed some minor bugs from GrFinger 4.2; Dropped the banner added

Dropped the banner added to the fingerprint images displayed when runnning trial license;some minor bugs from GrFinger 4.2; Improved robustness; Added splash screen when initializing the library using

Added splash screen when initializing the library using trial license;fingerprint images displayed when runnning trial license; Dropped the editions FULL and LIGHT. And added the

Dropped the editions FULL and LIGHT. And added the editions IDENTIFICATION and VERIFICATION.screen when initializing the library using trial license; About Fingerprint SDK Editions Fingerprint SDK is available

About Fingerprint SDK Editions

Fingerprint SDK is available in two editions: VERIFICATION and IDENTIFICATION. The difference between them is just the matching speed, as presented in the Technical Characteristics section.

Upgrading from GrFinger 4.2 to Fingerprint SDK

SDK upgrade

Contact Griaule to get a license upgrade and instructions on how to apply the new license;Upgrading from GrFinger 4.2 to Fingerprint SDK SDK upgrade Uninstall GrFinger 4.2 SDK; Install Fingerprint SDK.

Uninstall GrFinger 4.2 SDK;upgrade and instructions on how to apply the new license; Install Fingerprint SDK. Upgrading already deployed

Install Fingerprint SDK.on how to apply the new license; Uninstall GrFinger 4.2 SDK; Upgrading already deployed applications Contact

Upgrading already deployed applications

Contact Griaule to get a license upgrade and instructions on how to apply the new license;Fingerprint SDK. Upgrading already deployed applications Remove all binary files from GrFinger 4.2; Follow the

Remove all binary files from GrFinger 4.2;upgrade and instructions on how to apply the new license; Follow the instructions on Deploying a

Follow the instructions on Deploying a Fingerprint SDK Based Application section to deploy the new binary and license files. Deploying a Fingerprint SDK Based Application section to deploy the new binary and license files.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

If Microsoft, DigitalPersona, Futronic FS80, M2SYS M2-S or Bio-I Cyte fingerprint readers are used, you must remove the manufacturer's device driver and install the FingerCap USB Driver. For further information check Fingerprint Readers compatible with Griaule FingerCap USB Driver installation section.

FingerCap USB Driver

The FingerCap USB Driver is the new device driver used by Fingerprint SDK for some USB fingerprint readers. It replaces completely the manufacturer's device driver or application, simplifying the application installation and deployment.

The FingerCap USB Driver 1.2 supports the following fingerprint readers:

Microsoft Fingerprint ReaderUSB Driver 1.2 supports the following fingerprint readers: DigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B

DigitalPersona U.Are.U 4000following fingerprint readers: Microsoft Fingerprint Reader DigitalPersona U.Are.U 4000B Bio-I Cyte Biotouch / Futronic

DigitalPersona U.Are.U 4000BMicrosoft Fingerprint Reader DigitalPersona U.Are.U 4000 Bio-I Cyte Biotouch / Futronic FS80 Microsoft Wireless

Bio-I CyteDigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B Biotouch / Futronic FS80 Microsoft Wireless IntelliMouse

Biotouch / Futronic FS80U.Are.U 4000 DigitalPersona U.Are.U 4000B Bio-I Cyte Microsoft Wireless IntelliMouse Explorer with Fingerprint

Microsoft Wireless IntelliMouse Explorer with Fingerprint ReaderU.Are.U 4000B Bio-I Cyte Biotouch / Futronic FS80 Microsoft Optical Desktop with Fingerprint Reader M2SYS M2-S

Microsoft Optical Desktop with Fingerprint ReaderWireless IntelliMouse Explorer with Fingerprint Reader M2SYS M2-S The FingerCap USB Driver 1.2 works on the

M2SYS M2-SReader Microsoft Optical Desktop with Fingerprint Reader The FingerCap USB Driver 1.2 works on the following

The FingerCap USB Driver 1.2 works on the following operating systems:

Windows VistaUSB Driver 1.2 works on the following operating systems: Windows Server 2003 Windows XP Professional Windows

Windows Server 20031.2 works on the following operating systems: Windows Vista Windows XP Professional Windows XP Home Edition

Windows XP Professionaloperating systems: Windows Vista Windows Server 2003 Windows XP Home Edition Windows XP Media Center Edition

Windows XP Home EditionWindows Vista Windows Server 2003 Windows XP Professional Windows XP Media Center Edition Windows XP Tablet

Windows XP Media Center EditionServer 2003 Windows XP Professional Windows XP Home Edition Windows XP Tablet PC Edition Windows 2000

Windows XP Tablet PC EditionWindows XP Home Edition Windows XP Media Center Edition Windows 2000 (Service Pack 2 or later

Windows 2000 (Service Pack 2 or later recommended)Windows XP Media Center Edition Windows XP Tablet PC Edition Each fingerprint reader is supported on

Each fingerprint reader is supported on specifics operating systems. Please check it at Griaule Web Site . Griaule Web Site.

Licensing

Fingerprint SDK is distributed with a trial license valid for 90 days*. After this period you have to buy a license to keep using it.

Check the Griaule Web Site for licensing options, pricing and instructions on how to request commercial licenses.

To know how to apply and deploy licenses, check the Licensing Fingerprint SDK Based Deployed Applications section.

Trial license limitations

The trial licenses of Fingerprint SDK are for non-commercial use. There is no technical limitation: the only difference is the splash screen displayed when the library is initializing.

* Note that after 90 days the library still works normally, but using it without a commercial license will be an explicit violation of the license agreement. To use the commercial license there is no need to reinstall the SDK; you just have to proper replace the trial license with the commercial one.

Support

Griaule Support Page

Installing the SDK

Supported Systems and Requirementsone. Support Griaule Support Page Installing the SDK Supported IDEs SDK Folders Structure About the Samples

Supported IDEsPage Installing the SDK Supported Systems and Requirements SDK Folders Structure About the Samples Fingerprint Readers

SDK Folders Structurethe SDK Supported Systems and Requirements Supported IDEs About the Samples Fingerprint Readers Installation Supported

About the Samplesand Requirements Supported IDEs SDK Folders Structure Fingerprint Readers Installation Supported Systems and

Fingerprint Readers InstallationSupported IDEs SDK Folders Structure About the Samples Supported Systems and Requirements These are the operating

Supported Systems and Requirements

These are the operating systems supported by Fingerprint SDK:

Windows Vistaare the operating systems supported by Fingerprint SDK: Windows Server 2003 Windows XP Professional Windows XP

Windows Server 2003systems supported by Fingerprint SDK: Windows Vista Windows XP Professional Windows XP Home Edition Windows XP

Windows XP Professionalby Fingerprint SDK: Windows Vista Windows Server 2003 Windows XP Home Edition Windows XP Media Center

Windows XP Home EditionWindows Vista Windows Server 2003 Windows XP Professional Windows XP Media Center Edition Windows XP Tablet

Windows XP Media Center EditionServer 2003 Windows XP Professional Windows XP Home Edition Windows XP Tablet PC Edition Windows 2000

Windows XP Tablet PC EditionWindows XP Home Edition Windows XP Media Center Edition Windows 2000 (Service Pack 2 or later

Windows 2000 (Service Pack 2 or later recommended)Windows XP Media Center Edition Windows XP Tablet PC Edition The hardware requirements are a 200Mhz

The hardware requirements are a 200Mhz or higher Pentium-class Processor and 64Mb of RAM.

You also need to check the supported operating systems and the computer requirements for the fingerprint reader you're intending to use. In order to do so, check the manufacturer's website or the fingerprint reader's documentation.a 200Mhz or higher Pentium-class Processor and 64Mb of RAM. Supported IDEs Fingerprint SDK ActiveX component

Supported IDEs

Fingerprint SDK ActiveX component should be supported by any IDE that supports ActiveX components. It

Fingerprint SDK ActiveX component should be supported by any IDE that supports ActiveX components. It does works with the most used Windows IDEs: Visual Basic 6, Delphi 6, Delphi 7, Visual FoxPro 8, Visual Studio .NET 2003 and Visual Studio .NET 2005.

If you are intending to use Fingerprint SDK in an IDE other than those listed

If you are intending to use Fingerprint SDK in an IDE other than those listed above, make sure it can import and use ActiveX components.

SDK Folders Structure

After installing Fingerprint SDK the following folders will be available in the SDK root folder:

Directory Description

Fingerprint SDK 2009 Developer's Manual

Directory Description

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

bin

Contains all the files needed by Fingerprint SDK library. This folder contains (among others): GrFinger.dll (DLL), GrFingerX.dll (ActiveX) and GrFingerJava.dll (JNI for Windows).

doc

The Fingerprint SDK documentation files. Fingerprint SDK Developer's Manual ENUS.chm: This manual. Fingerprint SDK Java: Fingerprint SDK for Windows JavaDoc.

Fingerprint SDK Applet Installer: Fingerprint SDK applet helper for Windows JavaDoc.

images

Some fingerprint images for testing purposes (mainly playing with the samples without having to install a fingerprint reader).

include

Import files for some of the supported languages (DLL only).

lib

GrFinger.lib, a library to access Fingerprint SDK in your C++ and C++.NET applications.

samples

Contains the samples source codes and binaries.

About the Samples

How to Use the Samplesthe samples source codes and binaries. About the Samples Samples Internal Organization How to Use the

Samples Internal Organizationcodes and binaries. About the Samples How to Use the Samples How to Use the Samples

How to Use the Samples

The Fingerprint SDK contains a sample biometric application in many programming languages. The samples are all similar. In the "bin" folder of each programming language folder you will find the sample executable file. The sample main window seems like the one below:

file. The sample main window seems like the one below: The largest box shows the last

The largest box shows the last fingerprint acquired from a fingerprint reader or loaded from a file. Each reader scans images in a specific size (width and height), but the samples resize all images to the same size before displaying them. The box on the bottom of the window shows status messages, e.g. when a reader is plugged or unplugged, a finger is placed over a reader, etc.

By clicking the "Extract template" button, the last acquired fingerprint image is analyzed and its minutiae and segments are identified, extracted and displayed on screen.

The "Enroll" button saves the last extracted template into the database, and the ID of the enrolled template is displayed in the log box.

Placing a finger already enrolled in the database over the reader, waiting the image being acquired and clicking the "Identify" button will perform an identification; clicking the "Verify" button will perform a verification. In the latter case the sample will ask you the fingerprint ID you want to verify. In both cases the result will be displayed in the log box.

By checking the "Auto identify" option, whenever a finger is placed over the reader, the sample will try to automatically identify the fingerprint; the result will be shown in the log box.

To delete all the fingerprints enrolled in the database, click the "Clear database" button.

To clear the log box, use the "Clear log" button.

To save the currently displayed fingerprint image to a file, select the option "Save

" in the "Image" menu.

To load a fingerprint image saved in BMP format, select the option "Load from file

" in the "Image" menu.

Selecting the "Options

display the fingerprint minutiae, their directions and segments.

Samples Internal Organization

"

menu causes a new window to be opened. In this window it's possible to change the identification and verification thresholds, the fingerprint rotation tolerance and also the colors used to

Whenever possible, a sample source code follows the structure below:

File name pattern

Description

"Main"

"Util"

"Callbacks" (DLL

only)

"DB"

"Options"

The main window, which displays the fingerprint images, handle events, initializes and finalizes the sample.

Methods responsible for initializing and finalizing the Fingerprint SDK library, performing the basic biometric operations like identification, verification, fingerprint enrollment, etc, and also support routines, like adding messages to the log box or checking if a fingerprint template is valid.

The three callbacks handlers used by Fingerprint SDK (status, finger and image callbacks).

Methods responsible for adding and retrieving data from database.

The options window.

Fingerprint Readers Installation

Supported fingerprint readers:

Microsoft Fingerprint ReaderReaders Installation Supported fingerprint readers: DigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B

DigitalPersona U.Are.U 4000Supported fingerprint readers: Microsoft Fingerprint Reader DigitalPersona U.Are.U 4000B Bio-I Cyte Biotouch / Futronic

DigitalPersona U.Are.U 4000BMicrosoft Fingerprint Reader DigitalPersona U.Are.U 4000 Bio-I Cyte Biotouch / Futronic FS80 Microsoft Wireless

Bio-I CyteDigitalPersona U.Are.U 4000 DigitalPersona U.Are.U 4000B Biotouch / Futronic FS80 Microsoft Wireless IntelliMouse

Biotouch / Futronic FS80U.Are.U 4000 DigitalPersona U.Are.U 4000B Bio-I Cyte Microsoft Wireless IntelliMouse Explorer with Fingerprint

Microsoft Wireless IntelliMouse Explorer with Fingerprint ReaderU.Are.U 4000B Bio-I Cyte Biotouch / Futronic FS80 Microsoft Optical Desktop with Fingerprint Reader M2SYS M2-S

Microsoft Optical Desktop with Fingerprint Reader/ Futronic FS80 Microsoft Wireless IntelliMouse Explorer with Fingerprint Reader M2SYS M2-S 5 of 63 3/4/2009

M2SYS M2-SIntelliMouse Explorer with Fingerprint Reader Microsoft Optical Desktop with Fingerprint Reader 5 of 63 3/4/2009 14:33

Fingerprint SDK 2009 Developer's Manual

Secugen Hamster IIIFingerprint SDK 2009 Developer's Manual Nitgen Hamster I - Hamster II Crossmatch Fingerprint Readers Certis Image

Nitgen Hamster I - Hamster IISDK 2009 Developer's Manual Secugen Hamster III Crossmatch Fingerprint Readers Certis Image Orcanthus

Crossmatch Fingerprint ReadersManual Secugen Hamster III Nitgen Hamster I - Hamster II Certis Image Orcanthus Fingerprint Readers Installation

Certis Image OrcanthusNitgen Hamster I - Hamster II Crossmatch Fingerprint Readers Fingerprint Readers Installation Using the SDK Fingerprint

Fingerprint Readers Installation

Using the SDK

Fingerprint SDK DLL PrerequisitesOrcanthus Fingerprint Readers Installation Using the SDK Fingerprint SDK ActiveX Prerequisites Fingerprint SDK Java

Fingerprint SDK ActiveX PrerequisitesInstallation Using the SDK Fingerprint SDK DLL Prerequisites Fingerprint SDK Java for Windows Prerequisites Fingerprint

Fingerprint SDK Java for Windows PrerequisitesSDK DLL Prerequisites Fingerprint SDK ActiveX Prerequisites Fingerprint SDK Based Applications Overview Fingerprint

Fingerprint SDK Based Applications OverviewPrerequisites Fingerprint SDK Java for Windows Prerequisites Fingerprint Image Format Color Coding Format Contexts

Fingerprint Image FormatPrerequisites Fingerprint SDK Based Applications Overview Color Coding Format Contexts Thresholds and Rotation

Color Coding FormatSDK Based Applications Overview Fingerprint Image Format Contexts Thresholds and Rotation Tolerance Splash Screen,

ContextsOverview Fingerprint Image Format Color Coding Format Thresholds and Rotation Tolerance Splash Screen,

Thresholds and Rotation ToleranceFingerprint Image Format Color Coding Format Contexts Splash Screen, Advertisement Banner and Encrypted Images

Splash Screen, Advertisement Banner and Encrypted ImagesCoding Format Contexts Thresholds and Rotation Tolerance Deploying a Fingerprint SDK Based Application Fingerprint

Deploying a Fingerprint SDK Based ApplicationSplash Screen, Advertisement Banner and Encrypted Images Fingerprint SDK DLL Prerequisites

Fingerprint SDK DLL Prerequisites

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

In order to use Fingerprint SDK DLL, add to your project the import file corresponding to the programming language you're using.Import files for Delphi, C++ and C++.NET are available in

Import files for Delphi, C++ and C++.NET are available in the "include" folder in the SDK root folder.

Fingerprint SDK ActiveX Prerequisites

In order to use Fingerprint SDK ActiveX it must be first imported into the IDE you're using.the SDK root folder. Fingerprint SDK ActiveX Prerequisites This section contains detailed importing instructions for

This section contains detailed importing instructions for the following IDEs:

Microsoft Visual Basic 6detailed importing instructions for the following IDEs: Microsoft Visual Studio 2003/2005 Delphi 6/7 Microsoft

Microsoft Visual Studio 2003/2005for the following IDEs: Microsoft Visual Basic 6 Delphi 6/7 Microsoft Visual FoxPro 8 Microsoft Visual

Delphi 6/7Microsoft Visual Basic 6 Microsoft Visual Studio 2003/2005 Microsoft Visual FoxPro 8 Microsoft Visual Basic 6

Microsoft Visual FoxPro 8Visual Basic 6 Microsoft Visual Studio 2003/2005 Delphi 6/7 Microsoft Visual Basic 6 1. Go to

Microsoft Visual Basic 6

1. Go to Project -> Components

;

Visual Basic 6 1. Go to Project -> Components ; 2. Select the GrFingerX Control Library

2. Select the GrFingerX Control Library component;

; 2. Select the GrFingerX Control Library component; 3. The Fingerprint SDK ActiveX component will be

3. The Fingerprint SDK ActiveX component will be added to the Toolbox.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Microsoft Visual Studio 2003/2005

1. Select the Components group of the Toolbox side tab (if necessary, unhide the tab);

2. Right click on a clear area in the tab and select option Add/Remove Items

(VS 2003) or Choose Items

(VS 2005);

Add/Remove Items (VS 2003) or Choose Items (VS 2005); 3. In the COM Components tab, select

3. In the COM Components tab, select the GrFingerXCtrl Class component;

Components tab, select the GrFingerXCtrl Class component; 4. The Fingerprint SDK ActiveX component will appear in

4. The Fingerprint SDK ActiveX component will appear in the Toolbox.

Delphi 6/7

1. Go to Component -> Import ActiveX Control

;

will appear in the Toolbox. Delphi 6/7 1. Go to Component -> Import ActiveX Control ;

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

2. Select the GrFingerX Control Library in the component

2. Select the GrFingerX Control Library in the component list and click the Install

button;

in the component list and click the Install button; 3. Click the OK button. If a

3. Click the OK button. If a dialog box asks to install the package, click Yes;

If a dialog box asks to install the package, click Yes ; 4. A project with

4. A project with the Fingerprint SDK ActiveX library will be opened. Don't modify it, just close the project;

5. The Fingerprint SDK ActiveX component will be added to the Component Palette.

Microsoft Visual FoxPro 8

1. Insert an ActiveX Control (OleControl) in a form;

8 1. Insert an ActiveX Control (OleControl) in a form; 2. Select the GrFingerXCtrl Class component;
8 1. Insert an ActiveX Control (OleControl) in a form; 2. Select the GrFingerXCtrl Class component;

2. Select the GrFingerXCtrl Class component;

in a form; 2. Select the GrFingerXCtrl Class component; 3. The Fingerprint SDK ActiveX component will

3. The Fingerprint SDK ActiveX component will be added to the form.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Fingerprint SDK Java for Windows Prerequisites The

Fingerprint SDK Java for Windows Prerequisites

The GrFingerJava.jar package contains all the required classes for using Fingerprint SDK Java for Windows. GrFingerJava.jar package contains all the required classes for using Fingerprint SDK Java for Windows.

required classes for using Fingerprint SDK Java for Windows. Applet Prerequisites Fingerprint SDK is a native

Applet Prerequisites

Fingerprint SDK is a native Windows library, thus Java programs using Fingerprint SDK only run on Windows.

Applet Prerequisites

In order to use Fingerprint SDK in Java applets for Windows, three more requisites must be met:

Java applets for Windows, three more requisites must be met: 1. Sign the applet to grant

1. Sign the applet to grant permissions for copying files and loading libraries;

2. Copy all required Fingerprint SDK libraries to the client computer running the applet;

3. Copy the Fingerprint SDK license to the client computer running the applet;

In order to make it easier to met the second and third requisites, the Fingerprint SDK also contains a helper, the GrFingerAppletInstaller class, that has methods to perform all the necessary operations: unpacking ZIP files, copying files to the filesystem, initializing GrFinger, removing the copied files.

initializing GrFinger, removing the copied files. The ZIP package and license file must be located in

The ZIP package and license file must be located in the root folder of the JAR archive.

The GrFingerAppletInstaller class handles two resources: a ZIP file (containing the libraries) and a license file.

Using the methods provided by the class, copying the files and creating a GrFinger object is straightforward:

// Create the installer GrFingerAppletInstaller installer = new GrFingerAppletInstaller("","libraries.zip"); // Install libraries installer.copyAndExtractZip(); // Install license installer.copyLicense("mylicense.txt"); // Create GrFinger object GrFinger grFinger = installer.getGrFinger();

Finalizing GrFinger and removing the copied files using the methods provided by the GrFingerAppletInstaller class is also straightforward:

// Finalize GrFinger library grFinger.finalize(); // Finalize installer, removing copied files installer.finalize();

Applets and Fingerprint SDK Overview

installer.finalize(); Applets and Fingerprint SDK Overview Sun's Java Applet Tutorial at http:// java.sun.com/

Sun's Java Applet Tutorial at http:// java.sun.com/ docs/ books/ tutorial/ applet/ index.html is a good starting point for Java applets.

An applet is a class inherited from class JApplet (Swing based) or from class Applet (AWT based). An applet has four abstract milestone methods: init, start, stop and destroy.

init(): Called when the applet initializes; Called when the applet initializes;

start(): Called when the applet is started; Called when the applet is started;

stop(): Called when the applet is stopped; Called when the applet is stopped;

destroy(): Called when the applet is destroyed; Called when the applet is destroyed;

Swing components should be created, queried and manipulated in the event-dispatching thread, but the web-browsers don't invoke any applet milestone method from this thread. Thus, the milestone methods - init, start, stop, and destroy - should use the SwingUtilities method invokeAndWait (or invokeLater if appropriate) so that code that refers to the Swing components is executed in the event-dispatching thread. Note in the example below the method invokeAndWait in the init method.

public void init() { //Execute a job on the event-dispatching thread:

}

//creating this applet's GUI. try {

javax.swing.SwingUtilities.invokeAndWait(new Runnable() { public void run() { //Initialization code goes here

}

}); } catch (Exception e) { System.err.println("Initialization failed!");

}

e) { System.err.println("Initialization failed!"); } If the applet is Swing based, you must initialize and

If the applet is Swing based, you must initialize and finalize Fingerprint SDK library in the invokeAndWait method.

An applet using Fingerprint SDK must copy all necessary files to the client computer in the init method. Only after this operation an applet may load and initialize Fingerprint SDK library. Finally, Fingerprint SDK library must be finalized in the destroy method.

Signing an Applet

The Java Virtual Machine security policy doesn't allow ordinary applets to write data to the filesystem or load libraries. Applets that must perform such operations must be signed. To sign an applet it's necessary to package it in a JAR file and then sign this file with a trusted certificate.

JAR file and then sign this file with a trusted certificate. Another way to grant permissions

Another way to grant permissions for writing data to filesystem and loading libraries in a development environment is editing the user's .java.policy file before loading the applet. This procedure isn't recommended for production environments.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

In a development environment, creating self-signed certificates is an easy way to sign applets. To do so you must have the Java SDK installed.

The keytool program is used for managing X.509 certificates. The command "keytool --help" shows the program usage. To create a self-signed key you may do:

keytool -genkey -alias signFiles -keystore keyFile -keypass keypassword -dname "cn=Distinguished Name" -storepass storepassword

The command above will generate a file named keyFile containing a certificate suitable to sign an applet. To do so, use the program jarsigner, using the generated file keyFile as the keystore:

jarsigner -keystore keyFile -storepass storepassword -keypass keypassword -signedjar SignedJarFile.jar JarFile.jar signFiles

The command above will generate the file SignedJarFile.jar, which is the same JarFile.jar, but signed. This must be done for every JAR package needing special permissions that is used by the applet.

When a signed applet is loaded on a web-browser, a message box appears displaying the signature details and asking the user if the applet should be trusted. If the user doesn't trust the signed applet, the special permissions will not be granted. If the applet uses Fingerprint SDK, such permission denial will cause the library to fail during its initialization.

Fingerprint SDK Based Applications Overview

Like any biometric application, a Fingerprint SDK based application has four basic steps: initializing the Fingerprint SDK library, start capturing images from a fingerprint reader or loading them from files, extracting a template for each image, choosing among enrolling a template or matching it against others on database. Usually the "capturing/extracting/enrolling or matching" steps are repeated until the application is finished.initialization. Fingerprint SDK Based Applications Overview Fingerprint capture overview Once the capture module is

steps are repeated until the application is finished. Fingerprint capture overview Once the capture module is

Fingerprint capture overview

Once the capture module is initialized, whenever a supported fingerprint reader is plugged or unplugged into the computer, a corresponding event is fired. In case of a plugging event, the image capture may be started on the fingerprint reader.

Whenever a finger is placed over a fingerprint reader - assuming such reader is capturing images - the corresponding event is fired. Once the fingerprint image is captured, a new event is fired. Finally, when the finger is removed from the fingerprint reader, the corresponding event is also fired.

When the capture module is initialized, a special sensor is automatically plugged, firing the corresponding plugging event: the "File" sensor. Enabling image capture on this special sensor is required in order to load fingerprint images from picture files.fingerprint reader, the corresponding event is also fired. Fingerprint Image Format The fingerprint image format used

Fingerprint Image Format

The fingerprint image format used in the Fingerprint SDK library is an array of width * height unsigned bytes. Each byte represents a single pixel of the image. The array is arranged in left to right, top to bottom order. There's no padding, each line immediately follows the previous one. Each pixel has a grayscale value ranging from 0 (pure black) to 255 (pure white). This format does not store information about the resolution or size (width and height) of the image.

On GrFinger 4.1 FREE and LIGHT versions, the fingerprint images captured from the fingerprint readers couldn't be used for any other purpose because they were encrypted. Although Fingerprint SDK doesn't encrypt the fingerprint images, it accepts encrypted images as input for backward compatibility purposes.the resolution or size (width and height) of the image. Color Coding Format The color coding

Color Coding Format

The color coding format used by the Fingerprint SDK library is the BGR 24-bits format. Each color channel has 256 levels (0 to 255) and the color is coded as the integer number composed by the three channels values in the strict order blue-green-red (most significant byte to least significant byte), or, blue x 65536 + green x 256 + red.

Some examples:

255 (decimal) or 0000FF (hex) means pure red ( ); ); ); ); 65280 (decimal)
255 (decimal) or 0000FF (hex) means pure red ( ); ); ); ); 65280 (decimal)

255 (decimal) or 0000FF (hex) means pure red (

); ); ); );
);
);
);
);

65280 (decimal) or 00FF00 (hex) means pure green(

 
16711680 (decimal) or FF0000 (hex) means pure blue ( );
16711680 (decimal) or FF0000 (hex) means pure blue ( );

16711680

(decimal) or FF0000 (hex) means pure blue (

);

0 (decimal) or 000000 (hex) means black (

16777215 (decimal) or FFFFFF (hex) means white (

16777215

(decimal) or FFFFFF (hex) means white (

Contexts

Contexts are an advanced feature used to:

allow two or more biometric operations to be executed at the same time;white ( Contexts Contexts are an advanced feature used to: create different ready-to-use identification or verification

create different ready-to-use identification or verification environments;more biometric operations to be executed at the same time; Most biometric applications are interactive and

Most biometric applications are interactive and don't execute more than one biometric operation at a time, using just the default context. But, for example, to perform two fingerprint identifications simultaneously on a multithreaded server, each identification must be executed on its own context. Two operations must not be called simultaneously in the same context because they are not guaranteed to be thread-safe. Creating a new context for each operation that will be executed simultaneously guarantees the thread safety.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Furthermore, each context has its own matching parameters, making it possible to create different identification or verification environments. For example, in a two-level security biometric application, instead of tightening or lowering the matching parameters depending on the security level before performing a matching, two contexts, each one with the appropriate matching parameters, may be created; any fingerprint matching is then performed in a context corresponding to the right security level.

Thresholds and Rotation Tolerance

The identification and verification functions in Fingerprint SDK library are governed by two important parameters: threshold and rotation tolerance.

The threshold is the minimum score needed to state that two fingerprints do match. The default value is 45 for the identification process and 25 for the verification process, ensuring a 1% FRR.

The rotation tolerance defines the maximum acceptable angle variation (in degrees) between two fingerprints being compared that will result in a match. This value is valid in both clockwise and counter-clockwise directions, so the maximum value that can be set is 180.

Splash Screen, Advertisement Banner and Encrypted Images

Fingerprint SDK doesn't have any splash screen nor advertisement banner nor encrypt the fingerprint images, no matter which edition is being used.

However, when Fingerprint SDK library is running with a trial license, a splash screen is shown when the library initializes, as shown in the picture below.fingerprint images, no matter which edition is being used. For backward compatibility purposes, Fingerprint SDK works

when the library initializes, as shown in the picture below. For backward compatibility purposes, Fingerprint SDK

For backward compatibility purposes, Fingerprint SDK works with GrFinger 4.1 encrypted images.

Deploying a Fingerprint SDK Based Application

This section presents the files that are required to be packaged with a Fingerprint SDK based application in order to have it working when installed.

The fingerprint reader installation procedure on any machine where the application will be installed is the same as described in the Fingerprint Readers Installation section.

Required Fingerprint SDK Files

Libraries

The following files must be packaged with all Fingerprint SDK based applications:

GrFinger.dllbe packaged with all Fingerprint SDK based applications: pthreadVC2.dll The following files must be packaged with

pthreadVC2.dllwith all Fingerprint SDK based applications: GrFinger.dll The following files must be packaged with Fingerprint SDK

The following files must be packaged with Fingerprint SDK ActiveX based applications:

GrFingerX.dllbe packaged with Fingerprint SDK ActiveX based applications: Furthermore, GrFingerX.dll must be registered on system

Furthermore, GrFingerX.dll must be registered on system during application installation, using the regsvr32 tool. For further info about this tool, check the Microsoft's regsvr32 page.

The following files must be packaged with Fingerprint SDK Java for Windows based applications:

GrFingerJava.dllwith Fingerprint SDK Java for Windows based applications: GrFingerJava.jar For any applet using the applet helper,

GrFingerJava.jarSDK Java for Windows based applications: GrFingerJava.dll For any applet using the applet helper, the following

For any applet using the applet helper, the following files must also be added to the JAR package:

GrFingerAppletInstaller.jar

license agreement (your valid Fingerprint SDK integrator or enterprise license agreement) (your valid Fingerprint SDK integrator or enterprise license agreement)

Fingerprint reader support

The following files must be packaged with all Fingerprint SDK based applications supporting the Fingerprint Readers compatible with Griaule FingerCap USB Driver:

CapPluginFingercap.dll

The following files must be packaged with all Fingerprint SDK based applications supporting the Secugen Hamster III / Nitgen Hamster I / Hamster II fingerprint readers:

CapPluginHamster.dll

NBioBSP.dllI / Hamster II fingerprint readers: CapPluginHamster.dll The following files must be packaged with all Fingerprint

The following files must be packaged with all Fingerprint SDK based applications supporting the Certis Image Orcanthus fingerprint reader:

CapPluginCertis.dllsupporting the Certis Image Orcanthus fingerprint reader: CertisExports.dll Id3BiokeyDll.dll The following files must

CertisExports.dllImage Orcanthus fingerprint reader: CapPluginCertis.dll Id3BiokeyDll.dll The following files must be packaged with

Id3BiokeyDll.dllfingerprint reader: CapPluginCertis.dll CertisExports.dll The following files must be packaged with all Fingerprint

The following files must be packaged with all Fingerprint SDK based applications supporting the Crossmatch fingerprint readers:

CapPluginCrossMatch.dll

Example

If an application uses Fingerprint SDK ActiveX component and supports the Nitgen Hamster I and Microsoft fingerprint readers, the following files must be packaged with it:

GrFinger.dllreaders, the following files must be packaged with it: pthreadVC2.dll GrFingerX.dll (must also be registered in

pthreadVC2.dllthe following files must be packaged with it: GrFinger.dll GrFingerX.dll (must also be registered in the

GrFingerX.dll (must also be registered in the target computer with the regsvr32 tool) CapPluginFingercap.dll CapPluginHamster.dll regsvr32 tool) CapPluginFingercap.dll CapPluginHamster.dll

NBioBSP.dllcomputer with the regsvr32 tool) CapPluginFingercap.dll CapPluginHamster.dll Important notes 11 of 63 3/4/2009 14:33

Important notes

the regsvr32 tool) CapPluginFingercap.dll CapPluginHamster.dll NBioBSP.dll Important notes 11 of 63 3/4/2009 14:33

Fingerprint SDK 2009 Developer's Manual

All files required by Fingerprint SDK can be found in the "bin" folder in the SDK root folder.

The list of supported fingerprint readers is available in the Fingerprint Readers Support section.

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

During application installation, any required DLL file must be copied to the application folder, to a system folder (for e.g., SYSTEM folder) or to a folder included in the PATH variable.

For Java applications, any required JAR file must be added to the CLASSPATH variable.

Licensing Fingerprint SDK Based Deployed Applications

Every time the Fingerprint SDK library is initialized, it searches for a license file in two locations in the filesystem. A valid license file must be placed in one of these locations or the library will not work.

The first location is the application's folder. This is the recommended location where to copy the license file when installing a Fingerprint SDK based application.

The second location is recommended only for developers and provides a system and user independent license location: it's the <COMMON APPLICATION DATA>\Griaule folder.

The path <COMMON APPLICATION DATA> is the file system folder containing application data for all users. In Windows Vista, XP, 2000 and 2003 operating systems, the environment variable APPDATA contains this path.

For the English version of the Windows operating system, the table below shows the most likely locations of the <COMMON APPLICATION DATA>\Griaule folder. Other Windows versions or non-English Windows may have slightly different paths. As an utmost option, create the folder if it doesn't exist.

Windows version Folder

Windows Vista

C:\ProgramData\Griaule\

Windows XP

Windows 2000

C:\Documents and Settings\All Users\Application Data\Griaule\

Windows 2003

Programming Reference Guide

Return Codes and ConstantsData\Griaule\ Windows 2003 Programming Reference Guide Parameters Descriptions Fingerprint SDK DLL Reference Guide

Parameters Descriptions2003 Programming Reference Guide Return Codes and Constants Fingerprint SDK DLL Reference Guide Fingerprint SDK ActiveX

Fingerprint SDK DLL Reference GuideGuide Return Codes and Constants Parameters Descriptions Fingerprint SDK ActiveX Reference Guide Fingerprint SDK Java

Fingerprint SDK ActiveX Reference GuideParameters Descriptions Fingerprint SDK DLL Reference Guide Fingerprint SDK Java for Windows Reference Guide Fingerprint

Fingerprint SDK Java for Windows Reference GuideDLL Reference Guide Fingerprint SDK ActiveX Reference Guide Fingerprint SDK.NET Reference Guide Return Codes and

Fingerprint SDK.NET Reference GuideGuide Fingerprint SDK Java for Windows Reference Guide Return Codes and Constants Return codes Event constants

Return Codes and Constants

Return codesSDK.NET Reference Guide Return Codes and Constants Event constants Image constants Matching constants Context

Event constantsReference Guide Return Codes and Constants Return codes Image constants Matching constants Context constants

Image constantsReturn Codes and Constants Return codes Event constants Matching constants Context constants Licensing constants

Matching constantsand Constants Return codes Event constants Image constants Context constants Licensing constants Template format

Context constantscodes Event constants Image constants Matching constants Licensing constants Template format constants Return codes

Licensing constantsImage constants Matching constants Context constants Template format constants Return codes Success Codes

Template format constantsMatching constants Context constants Licensing constants Return codes Success Codes GR_OK 0 Success

Return codes

Success Codes

GR_OK

0

Success

GR_BAD_QUALITY

0

Extraction succeeded, template has bad quality

GR_MEDIUM_QUALITY

1

Extraction succeeded, template has medium quality

GR_HIGH_QUALITY

2

Extraction succeeded, template has high quality

GR_MATCH

1

Fingerprints match

GR_NOT_MATCH

0

Fingerprints don't match

GR_DEFAULT_USED

3

A supplied parameter is invalid or out of range, default value will be used

GR_ENROLL_NOT_READY

0

Enrollment process not ready

GR_ENROLL_SUFFICIENT

1

Sufficient enrollment

GR_ENROLL_GOOD

2

Good enrollment

GR_ENROLL_VERY_GOOD

3

Very good enrollment

GR_ENROLL_MAX_LIMIT_REACHED

4

Maximum limit of consolidated templates was reached

Initialization Error Codes

GR_ERROR_INITIALIZE_FAIL -1

Initialization failed

GR_ERROR_NOT_INITIALIZED -2

GrFinger isn't initialized

GR_ERROR_FAIL_LICENSE_READ -3

GrFinger couldn't read the license file

GR_ERROR_NO_VALID_LICENSE -4

No valid license found

GR_ERROR_NULL_ARGUMENT -5

A null parameter was supplied

GR_ERROR_FAIL

-6

Unexpected failure

GR_ERROR_ALLOC

-7

Memory allocation failure

GR_ERROR_PARAMETERS

-8

An incorrect parameter was supplied

Extraction and Matching Error Codes

GR_ERROR_WRONG_USE -107

Function can't be called at this time

GR_ERROR_EXTRACT -108

Error extracting template

GR_ERROR_SIZE_OFF_RANGE -109

Image size is too big

GR_ERROR_RES_OFF_RANGE -110

Image resolution is out of the valid range

GR_ERROR_CONTEXT_NOT_CREATED -111

Context couldn't be created

GR_ERROR_INVALID_CONTEXT -112

Context isn't valid

GR_ERROR_ERROR

-113

General, unexpected or unknown error

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

GR_ERROR_NOT_ENOUGH_SPACE

-114

Supplied template buffer is too small to hold the template

Capture Error Codes GR_ERROR_CONNECT_SENSOR -201 GR_ERROR_CAPTURING -202 GR_ERROR_CANCEL_CAPTURING -203 GR_ERROR_INVALID_ID_SENSOR -204

Error connecting to the fingerprint reader Error while acquiring image Capture has been canceled Invalid fingerprint reader ID

GR_ERROR_SENSOR_NOT_CAPTURING -205 GR_ERROR_INVALID_EXT -206 GR_ERROR_INVALID_FILENAME -207 GR_ERROR_INVALID_FILETYPE -208

Capture wasn't started on the fingerprint reader Invalid file extension Invalid filename Invalid file type

GR_ERROR_SENSOR

-209

Fingerprint reader error

License Error Codes

GR_ERROR_GET_HARDWARE_KEY -301

Unable to get your hardware key

GR_ERROR_INTERNET_CONNECTION

-302

Error internet connection

GR_ERROR_BAD_REQUEST

-303

Bad request

GR_ERROR_INVALID_PRODUCT_KEY

-304

Invalid product key

GR_ERROR_INSUFFICIENT_CREDIT -305

Insufficient credit

GR_ERROR_NO_HARDWARE_BOUND

-306

No hardware-bound license

GR_ERROR_HTTP_AUTHORIZATION -307

HTTP authentication failed

GR_ERROR_WRONG_PRODUCT_KEY

-308

Wrong product key

GR_ERROR_INTERNAL_SERVER

-309

Internal server error

GR_ERROR_WRITING_LICENSE_FILE

-310

Unable to write the license file

GR_ERROR_PK_NOT_LINKED -311 GR_ERROR_PK_NOT_APPROVED -312

Product key not linked with a Griaule Account Product key not approved yet

Template format constants

Template Format Values GR_FORMAT_DEFAULT

0

Fingerprint SDK's default template format

GR_FORMAT_GR001

1

Fingerprint SDK private template format, Version 1

GR_FORMAT_GR002

2

Fingerprint SDK private template format, Version 2 (Embedded template)

GR_FORMAT_GR003

3

Fingerprint SDK private template format, Version 3

GR_FORMAT_CLASSIC 100

Legacy template format

GR_FORMAT_ISO

200

ISO 19794-2 Compliant template Format

GR_FORMAT_ANSI

201

ANSI 378-2004 Compliant template Format

Event constants

ANSI 378-2004 Compliant template Format Event constants Event Codes GR_PLUG 21 20 A fingerprint reader was

Event Codes

GR_PLUG

21

20

A fingerprint reader was plugged on the machine

GR_UNPLUG

A fingerprint reader was unplugged from the machine

GR_FINGER_DOWN 11

GR_FINGER_UP

10

A finger was placed over the fingerprint reader A finger was removed from the fingerprint reader

Image constants

 

Picture File Formats GRCAP_IMAGE_FORMAT_BMP

501

Windows Bitmap (BMP) image format

Image Values

GR_DEFAULT_RES

500

Default resolution value for an image in DPI

GR_DEFAULT_DIM

500

Maximum width and height of an image in pixels that is processed on template extraction

GR_MAX_SIZE_TEMPLATE

10000

Maximum template size in bytes

GR_MAX_IMAGE_WIDTH

1280

Maximum acceptable image width in pixels

GR_MAX_IMAGE_HEIGHT

1280

Maximum acceptable image height in pixels

GR_MAX_RESOLUTION

1000

Maximum acceptable image resolution in DPI

GR_MIN_IMAGE_WIDTH

50

Minimum acceptable image width in pixels

Fingerprint SDK 2009 Developer's Manual

GR_MIN_IMAGE_HEIGHT

50

Minimum acceptable image height in pixels

GR_MIN_RESOLUTION

125

Minimum acceptable image resolution in DPI

GR_IMAGE_NO_COLOR 536870911

Matching constants

Matching Values

No defined color for biometric display

GR_MAX_THRESHOLD

200

Maximum threshold value

GR_MIN_THRESHOLD

10

Minimum threshold value

GR_VERYLOW_FRR

30

Threshold value for a very low FRR (1 false rejection in 1000)

GR_LOW_FRR

45

Threshold value for a low FRR (1 false rejection in 100)

GR_LOW_FAR

60

Threshold value for a low FAR (1 false acceptance in 300000)

GR_VERYLOW_FAR

80

Threshold value for a very low FAR (1 false acceptance in 3000000)

GR_ROT_MIN

0

Minimum rotation tolerance

GR_ROT_MAX

180

Maximum rotation tolerance

Context constants

Context Values

GR_DEFAULT_CONTEXT

0

Default context

GR_NO_CONTEXT

-1

No context

Licensing constants

License Types

GRFINGER_FULL 1

Fingerprint IDENTIFICATION SDK license agreement

GRFINGER_LIGHT

2

Fingerprint VERIFICATION SDK license agreement

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Parameters Descriptions

Each function, method or event parameter is presented along with its description and type. The parameter type is inside square brackets and may be:

[in] The parameter is used only to pass values in to the function; The parameter is used only to pass values in to the function;

[out] The parameter is used only to pass values back from the function; The parameter is used only to pass values back from the function;

[in, out] The parameter is used both to pass values in and to pass results back out The parameter is used both to pass values in and to pass results back out of the function;

Fingerprint SDK DLL Reference Guide

out of the function; Fingerprint SDK DLL Reference Guide Initialization and finalization functions Matching functions

Initialization and finalization functionsout of the function; Fingerprint SDK DLL Reference Guide Matching functions Enrollment Functions Extraction functions

Matching functionsReference Guide Initialization and finalization functions Enrollment Functions Extraction functions Capture functions

Enrollment FunctionsInitialization and finalization functions Matching functions Extraction functions Capture functions Biometric display

Extraction functionsfunctions Matching functions Enrollment Functions Capture functions Biometric display functions Other

Capture functionsMatching functions Enrollment Functions Extraction functions Biometric display functions Other functions Callback

Biometric display functionsEnrollment Functions Extraction functions Capture functions Other functions Callback handlers Enrollment Functions

Other functionsfunctions Capture functions Biometric display functions Callback handlers Enrollment Functions GrEnroll

Callback handlersfunctions Biometric display functions Other functions Enrollment Functions GrEnroll GrStartEnroll GrEnroll Enrolls

Enrollment Functions

GrEnrollOther functions Callback handlers Enrollment Functions GrStartEnroll GrEnroll Enrolls a fingerprint image.

GrStartEnrollfunctions Callback handlers Enrollment Functions GrEnroll GrEnroll Enrolls a fingerprint image. Prerequisites

GrEnroll

Enrolls a fingerprint image.

Prerequisites

Prerequisites The Fingerprint SDK library must have been previously initialized.The template array must be already allocated. The recommended size is GR_MAX_SIZE_TEMPLATE bytes.

Return

On success, the enroll quality code is returned. On failure, the appropriate error code is returned.

Parameters

[in] rawImage

A raw grayscale fingerprint image.

[in] width

Fingerprint image width in pixels.

[in] height

Fingerprint image height in pixels.

[in] res

Fingerprint image resolution in DPI.

Fingerprint SDK 2009 Developer's Manual

[out] tpt

The byte array in which the fingerprint template will be stored.

[in] The maximum size in bytes of the byte array supplied.

[in,out] tptSize

 

[out] The size in bytes of the extracted template.

[out] quality

The template quality.

[in] tptFormat

The template format to be used.

[in] context

Context in which the enrollment will be performed.

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Declaration

C++

int result; // set current buffer size for the consolidated template _tpt->_size = GR_MAX_SIZE_TEMPLATE; result = GrEnroll(_raw.img, _raw.width, _raw.height, _raw.Res, (char*)_tpt->_tpt, &_tpt->_size, &_tpt->_quality, GR_FORMAT_DEFAULT, GR_DEFAULT_CONTEXT);

// if error, set template size to 0 if (result < 0){ // Result < 0 => enrollment problem _tpt->_size = 0;

}

Delphi

Var

 

ret: Integer;

Begin

 

// set current buffer size for the consolidated template template.size := GR_MAX_SIZE_TEMPLATE; ret := GrEnroll(raw.img, raw.width, raw.height, raw.res, template.tpt, template.size, template.quality, GR_FORMAT_DEFAULT, GR_DEFAULT_CONTEXT); // if error, set template size to 0 // Result < 0 => enrollment problem if (ret < 0 ) then template.size := 0;

End;

GrStartEnroll

Starts the enrollment process. The fingerprint templates are consolidated to create a trustable one.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] context

Context in which the enrollment will be started.

Declaration

C++

int

stdcall GrStartEnroll(int context);

Delphi

function GrStartEnroll(context: Integer): Integer; stdcall;

Sample Code

C++

int result; result = GrStartEnroll(GR_DEFAULT_CONTEXT);

Delphi

Var

 

ret: Integer;

Begin

 

ret := GrStartEnroll(GR_DEFAULT_CONTEXT);

End;

Initialization and finalization functions

GrInitializeEnd; Initialization and finalization functions GrFinalize GrCreateContext GrDestroyContext GrInitialize

GrFinalizeEnd; Initialization and finalization functions GrInitialize GrCreateContext GrDestroyContext GrInitialize Initializes

GrCreateContextand finalization functions GrInitialize GrFinalize GrDestroyContext GrInitialize Initializes the Fingerprint

GrDestroyContextfunctions GrInitialize GrFinalize GrCreateContext GrInitialize Initializes the Fingerprint SDK library,

GrInitialize

Initializes the Fingerprint SDK library, creates the default context and checks for a valid license on system.

Prerequisites

A valid license must exist on system.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Declaration

C++

int

stdcall GrInitialize();

Fingerprint SDK 2009 Developer's Manual

Delphi

function GrInitialize: Integer; stdcall;

Sample Code

C++

int result; //Initialize the library result = GrInitialize();

Delphi

// Initializing the library. err := GrInitialize();

GrFinalize

Finalizes the Fingerprint SDK library, freeing any resource used.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Declaration

C++

int

stdcall GrFinalize();

Delphi

function GrFinalize: Integer; stdcall;

Sample Code

C++

retVal=GrFinalize();

Delphi

retVal:=GrFinalize();

GrCreateContext

Creates a context in which extraction, verification and identification may be performed.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[out] contextId

Declaration

C++

int

stdcall

The identifier of the newly created context.

GrCreateContext (int *contextId);

Delphi

function GrCreateContext( var contextId: Integer): Integer; stdcall;

Sample Code

C++

int contextId=0; retVal=GrCreateContext(&contextId);

Delphi

Var

contextId : integer;

begin

retVal:=GrCreateContext(var contextId);

GrDestroyContext

Destroys a context.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] contextId

Declaration

C++

int

stdcall

The identifier of the context to be destroyed.

GrDestroyContext (int contextId);

Delphi

function GrDestroyContext(contextId: Integer): Integer; stdcall;

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Sample Code

C++

retVal=GrDestroyContext(contextId);

Delphi

retVal:=GrDestroyContext(contextId);

Matching functions

GrVerifyretVal:=GrDestroyContext(contextId); Matching functions GrIdentifyPrepare GrIdentify GrSetIdentifyParameters

GrIdentifyPrepareMatching functions GrVerify GrIdentify GrSetIdentifyParameters GrSetVerifyParameters

GrIdentifyMatching functions GrVerify GrIdentifyPrepare GrSetIdentifyParameters GrSetVerifyParameters

GrSetIdentifyParameters

GrSetVerifyParameters

GrGetIdentifyParameters

GrGetVerifyParameters

GrVerify

Performs a verification by comparing the two templates supplied.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_MATCH is returned if the matching score is higher than the verification threshold, otherwise GR_NOT_MATCH is returned. On failure, the appropriate error code is returned.

Parameters

[in] queryTemplate

Query template to be verified.

[in] referenceTemplate

Reference template for verification.

[out] verifyScore

Verification matching score.

[in] context

Context in which the verification will be performed.

See also

Return codes

Declaration

C++

int

stdcall

GrVerify(char *queryTemplate, char *referenceTemplate, int *verifyScore, int context);

Delphi

function GrVerify(queryTemplate: PChar; referenceTemplate: PChar; var verifyScore: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

public class TTemplate

{

// Template data. public Array _tpt; // Template size public int _size;

public TTemplate(){ // Create a byte buffer for the template _tpt = new byte[(int)GRConstants.GR_MAX_SIZE_TEMPLATE]; _size = 0;

}

}

TTemplate *tptRef;

int result;

// Checking if the template is valid. if(!TemplateIsValid()) return ERR_INVALID_TEMPLATE;

// Getting the template with the supplied ID from the database. tptRef = _DB->getTemplate(id);

// Checking if the ID was found. if ((tptRef->_tpt == NULL) || (tptRef->_size == 0)){ return ERR_INVALID_ID;

}

// Comparing the templates. result = GrVerify((char*)_tpt->_tpt, (char*)tptRef->_tpt, score, GR_DEFAULT_CONTEXT);

Delphi

type

 

// Class TTemplate // Define a type to temporary storage of template TTemplate = class

public // Template data.

tpt:

PSafeArray;

// Template size

size:

Integer;

// Template ID (if retrieved from DB)

id:

Integer;

// Allocates space to template constructor Create; // clean-up destructor Destroy; override;

end;

Var

 

ret: Integer;

tptRef: TTemplate;

Begin

// Checking if the template is valid. if not(TemplateIsValid()) then begin

Verify := ERR_INVALID_TEMPLATE; exit;

end;

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

// Getting the template with the supplied ID from the database. tptRef := DB.getTemplate(id); if ((tptRef.tpt = nil) or (tptRef.size <= 0)) then begin

Verify := ERR_INVALID_ID; exit;

end; // Comparing the templates. Verify := GrVerify(template.tpt, tptRef.tpt, score, GR_DEFAULT_CONTEXT);

end;

GrIdentifyPrepare

Prepares a query template to be identified against one or more reference templates.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] templateQuery

Query template to be identified.

[in] context

Context in which the identification will be performed.

Declaration

C++

int

stdcall

GrIdentifyPrepare (char *templateQuery, int context);

Delphi

function GrIdentifyPrepare(templateQuery: PChar; context: Integer): Integer; stdcall;

Sample Code

C++

public class TTemplate

{

// Template data. public Array _tpt; // Template size public int _size; public TTemplate(){ // Create a byte buffer for the template _tpt = new byte[(int)GRConstants.GR_MAX_SIZE_TEMPLATE]; _size = 0;

}

}

TTemplate *tptRef;

// Checking if the template is valid. if(!TemplateIsValid()) return ERR_INVALID_TEMPLATE; // Starting the identification process and supplying the query //template. result = GrIdentifyPrepare((char*)_tpt->_tpt, GR_DEFAULT_CONTEXT); // Getting the current template from the recordset. tptRef = _DB->getTemplate(rs);

// Comparing the current template. result = GrIdentify((char*)tptRef->_tpt, &score, GR_DEFAULT_CONTEXT);

// Checking if the query template and the reference template match. if(result == GR_MATCH){ id = _DB->getId(rs);

}

Delphi

type // Class TTemplate // Define a type to temporary storage of template TTemplate = class public // Template data. tpt: PSafeArray; // Template size size: Integer; // Template ID (if retrieved from DB)

id:

Integer;

// Allocates space to template constructor Create; // clean-up destructor Destroy; override;

end;

Var

 

ret: Integer;

tptRef: TTemplate;

Begin

// Checking if the template is valid. if not(TemplateIsValid())then begin

Identify := ERR_INVALID_TEMPLATE; exit;

end;

// Starting the identification process and supplying the query //template. ret := GrIdentifyPrepare(template.tpt, GR_DEFAULT_CONTEXT); // Comparing the current template. ret := GrIdentify(tptRef.tpt, score, GR_DEFAULT_CONTEXT); // Checking if the query template and the reference template match. if (ret = GR_MATCH) then begin

Identify := tptRef.id; exit;

end else if (ret < 0) then begin

Identify := ret;

end;

GrIdentify

Performs an identification by comparing the supplied reference template against the previously prepared query template.

Prerequisites

The Fingerprint SDK library must have been previously initialized. The identification must be previously prepared by calling the GrIdentifyPrepare function. The GrVerify function must not be called beween the call to GrIdentifyPrepare function and a call to GrIdentify function.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Return

On success, GR_MATCH is returned if the matching score is higher than the identification threshold, otherwise GR_NOT_MATCH is returned. On failure, the appropriate error code is returned.

Parameters

[in] templateReference

Reference template for identification.

[out] identifyScore

Identification matching score.

[in] context

Context in which the identification will be performed.

See also

Return codes

Declaration

C++

GrIdentify (char *templateReference, int *identifyScore, int context);

Delphi

function GrIdentify(templateReference: PChar; var identifyScore: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

public class TTemplate

{

// Template data. public Array _tpt; // Template size public int _size;

public TTemplate(){ // Create a byte buffer for the template _tpt = new byte[(int)GRConstants.GR_MAX_SIZE_TEMPLATE]; _size = 0;

}

}

TTemplate *tptRef;

// Checking if the template is valid. if(!TemplateIsValid()) return ERR_INVALID_TEMPLATE; // Starting the identification process and supplying the query //template. result = GrIdentifyPrepare((char*)_tpt->_tpt, GR_DEFAULT_CONTEXT); // Getting the current template from the recordset. tptRef = _DB->getTemplate(rs);

// Comparing the current template. result = GrIdentify((char*)tptRef->_tpt, &score, GR_DEFAULT_CONTEXT);

// Checking if the query template and the reference template match. if(result == GR_MATCH){ id = _DB->getId(rs);

}

Delphi

type // Class TTemplate // Define a type to temporary storage of template TTemplate = class

public // Template data.

tpt:

// Template size

size:

// Template ID (if retrieved from DB)

id:

PSafeArray;

Integer;

Integer;

// Allocates space to template constructor Create; // clean-up destructor Destroy; override;

end;

Var

ret: Integer;

tptRef: TTemplate;

Begin

// Checking if the template is valid. if not(TemplateIsValid())then begin

Identify := ERR_INVALID_TEMPLATE; exit;

end;

// Starting the identification process and supplying the query template. ret := GrIdentifyPrepare(template.tpt, GR_DEFAULT_CONTEXT); // Comparing the current template. ret := GrIdentify(tptRef.tpt, score, GR_DEFAULT_CONTEXT); // Checking if the query template and the reference // template match. if (ret = GR_MATCH) then begin

Identify := tptRef.id; exit;

end else if (ret < 0) then begin

Identify := ret;

end;

GrSetIdentifyParameters

Sets the identification parameters in the supplied context.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. If any supplied parameter is invalid or out of range, its default value will be used and GR_DEFAULT_USED is returned. On failure, the appropriate error code is returned.

Parameters

[in] identifyThreshold

The identification score threshold.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

[in] identifyRotationTolerance

The rotation tolerance for the identification process.

[in] context

Context in which the identification parameters will be set.

See also

Matching constants

Context constants

Declaration

C++

int

stdcall

GrSetIdentifyParameters (int identifyThreshold, int identifyRotationTolerance, int context);

Delphi

function GrSetIdentifyParameters(identifyThreshold: Integer; identifyRotationTolerance: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

ret = GrSetIdentifyParameters(thresholdId, rotationMaxId, GR_DEFAULT_CONTEXT); // error? if (ret == GR_DEFAULT_USED) { MessageBox::Show("Invalid identify parameters values. Default values will be used.");

}

Delphi

ret := GrSetIdentifyParameters(thresholdId, rotationMaxId, GR_DEFAULT_CONTEXT); // error? if ret = GR_DEFAULT_USED then begin showmessage('Invalid identify parameters values. Default values will be used.');

end;

GrSetVerifyParameters

Sets the verification parameters in the supplied context.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. If any supplied parameter is invalid or out of range, its default value will be used and GR_DEFAULT_USED is returned. On failure, the appropriate error code is returned.

Parameters

 

[in] verifyThreshold

The verification score threshold.

[in] verifyRotationTolerance

The rotation tolerance for the verification process.

[in] context

Context in which the verification parameters will be set.

See also

Matching constants

Context constants

Declaration

C++

int

stdcall

GrSetVerifyParameters (int verifyThreshold, int verifyRotationTolerance, int context);

Delphi

function GrSetVerifyParameters(VerifyThreshold: Integer; VerifyRotationTolerance: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

// set the new verification parameters ret = GrSetVerifyParameters(thresholdVr, rotationMaxVr, GR_DEFAULT_CONTEXT); // error? if (ret == GR_DEFAULT_USED) { MessageBox::Show("Invalid verify parameters values. Default values will be used.");

}

Delphi

// set the new verification parameters ret := GrSetVerifyParameters(thresholdVr, rotationMaxVr, GR_DEFAULT_CONTEXT); // error? if ret = GR_DEFAULT_USED then begin showmessage('Invalid verify parameters values. Default values will be used.');

end;

GrGetIdentifyParameters

Retrieves the identification parameters for the supplied context.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

[out] identifyThreshold

The current identification score threshold.

[out] identifyRotationTolerance

The current rotation tolerance for the identification process.

[in] context

Context from which the identification parameters will be retrieved.

See also

Matching constants

Context constants

Declaration

C++

int

stdcall

GrGetIdentifyParameters (int &identifyThreshold, int &identifyRotationTolerance, int context);

Delphi

function GrGetIdentifyParameters(var identifyThreshold: Integer; var identifyRotationTolerance: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

int thresholdId, rotationMaxId; GrGetIdentifyParameters(&thresholdId, &rotationMaxId, GR_DEFAULT_CONTEXT);

Delphi

Var

 

thresholdId : Integer; rotationMaxId: Integer;

begin

 

GrGetIdentifyParameters(thresholdId, rotationMaxId, GR_DEFAULT_CONTEXT);

end

GrGetVerifyParameters

Retrieves the verification parameters for the supplied context.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[out] verifyThreshold

The current verification score threshold.

[out] verifyRotationTolerance

The current rotation tolerance for the verification process.

[in] context

Context from which the verification parameters will be retrieved.

See also

Matching constants

Context constants

Declaration

C++

int

stdcall

GrGetVerifyParameters (int &verifyThreshold, int &verifyRotationTolerance, int context);

Delphi

function GrGetVerifyParameters(var verifyThreshold: Integer; var verifyRotationTolerance: Integer; context: Integer): Integer; stdcall;

Sample Code

C++

int thresholdVr, rotationMaxVr; GrGetVerifyParameters(&thresholdVr, &rotationMaxVr, GR_DEFAULT_CONTEXT);

Delphi

var

 

thresholdVr : Integer; rotationMaxVr: Integer;

begin

 

GrGetVerifyParameters(thresholdVr, rotationMaxVr, GR_DEFAULT_CONTEXT);

End

Extraction functions

GrCovertTemplateGR_DEFAULT_CONTEXT); End Extraction functions GrExtractEx GrExtract GrCovertTemplate The Fingerprint SDK

GrExtractExEnd Extraction functions GrCovertTemplate GrExtract GrCovertTemplate The Fingerprint SDK library must

GrExtractEnd Extraction functions GrCovertTemplate GrExtractEx GrCovertTemplate The Fingerprint SDK library must have been

GrCovertTemplate

The Fingerprint SDK library must have been previously initialized. The template array must be already allocated. The recommended size is GR_MAX_SIZE_TEMPLATE bytes.

Prerequisites

The template array must be already allocated. The recommended size is GR_MAX_SIZE_TEMPLATE bytes.

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] oldTpt

The template to convert.

[out] newTpt

The converted template.

[in]The maximum size in bytes of the byte array supplied.

[in,out] newTptSize

[out] The size in bytes of the converted template.

[in] context

Context in which the extraction will be performed.

[in] format

The template format to be used.

Declaration

C++

int

stdcall

GrConvertTemplate(char* oldTpt, char* newTpt, int* newTptSize, int context, int format);

Delphi

function GrConvertTemplate(oldTpt: Pchar; newTpt: PChar; var newTptSize: Integer; context: Integer; format: Integer): Integer; stdcall;

Sample Code

C++

int result; // set current buffer size for the extract template _newTpt->_size = GR_MAX_SIZE_TEMPLATE; result = GrConvertTemplate((char*)_oldTpt, (char*)_newTpt->_tpt, &_newTpt->_size, GR_DEFAULT_CONTEXT, GR_FORMAT_DEFAULT);

// if error, set template size to 0 if (result < 0){ // Result < 0 => conversion problem _newTpt->_size = 0;

}

Delphi

Var

 

ret: Integer;

Begin

 

// set current buffer size for the extract template newTemplate.size := GR_MAX_SIZE_TEMPLATE; ret := GrConvertTemplate(oldTemplate.tpt, newTemplate.tpt, newTemplate.size, GR_DEFAULT_CONTEXT, GR_FORMAT_DEFAULT); // if error, set template size to 0 // Result < 0 => conversion problem if (ret < 0 ) then newTemplate.size := 0;

End;

GrExtract

Extracts a fingerprint template from the supplied fingerprint raw image.

Prerequisites

The Fingerprint SDK library must have been previously initialized. The template array must be already allocated. The recommended size is GR_MAX_SIZE_TEMPLATE bytes.

Return

On success, the template quality code is returned. On failure, the appropriate error code is returned.

Parameters

[in] rawImage

A raw grayscale fingerprint image.

[in] width

[in] Fingerprint image width in pixels.

[in] height

Fingerprint image height in pixels.

[in] res

Fingerprint image resolution in DPI.

[out] tpt

The byte array in which the fingerprint template will be stored.

[in] The maximum size in bytes of the byte array supplied.

[in,out] tptSize

[out] The size in bytes of the extracted template.

[in] context

Context in which the extraction will be performed.

Declaration

C++

int

stdcall

GrExtract(unsigned char *rawimage, int width, int height, int res, char *tpt, int *tptSize, int context);

Delphi

function GrExtract(rawimage: Pchar; width: Integer; height: Integer; res: Integer; tpt: PChar; var tptSize: Integer; context: Integer): Integer; stdcall;

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Sample Code

C++

int result; // set current buffer size for the extract template _tpt->_size = GR_MAX_SIZE_TEMPLATE; result = GrExtract(_raw.img, _raw.width, _raw.height, _raw.Res, (char*)_tpt->_tpt, &_tpt->_size, GR_DEFAULT_CONTEXT);

// if error, set template size to 0 if (result < 0){ // Result < 0 => extraction problem _tpt->_size = 0;

}

Delphi

Var

 

ret: Integer;

Begin

 

// set current buffer size for the extract template template.size := GR_MAX_SIZE_TEMPLATE; ret := GrExtract(raw.img, raw.width, raw.height, raw.res, template.tpt, template.size, GR_DEFAULT_CONTEXT); // if error, set template size to 0 // Result < 0 => extraction problem if (ret < 0 ) then template.size := 0;

End;

GrExtractEx

Extracts a fingerprint template, in a specified format, from the supplied fingerprint raw image.

Prerequisites

The Fingerprint SDK library must have been previously initialized. The template array must be already allocated. The recommended size is GR_MAX_SIZE_TEMPLATE bytes.

Return

On success, the template quality code is returned. On failure, the appropriate error code is returned.

Parameters

[in] rawImage

A raw grayscale fingerprint image.

[in] width

[in] Fingerprint image width in pixels.

[in] height

Fingerprint image height in pixels.

[in] res

Fingerprint image resolution in DPI.

[out] tpt

The byte array in which the fingerprint template will be stored.

[in] The maximum size in bytes of the byte array supplied.

[in,out] tptSize

[out] The size in bytes of the extracted template.

[in] context

Context in which the extraction will be performed.

[in] tptFormat

The template format to be used.

Declaration

C++

int

stdcall

GrExtractEx(unsigned char *rawimage, int width, int height, int res, char *tpt, int *tptSize, int context, int tptFormat);

Delphi

function GrExtractEx(rawimage: Pchar; width: Integer; height: Integer; res: Integer; tpt: PChar; var tptSize: Integer; context: Integer; tptFormat: Integer): Integer; stdcall;

Sample Code

C++

int result; // set current buffer size for the extract template _tpt->_size = GR_MAX_SIZE_TEMPLATE; result = GrExtractEx(_raw.img, _raw.width, _raw.height, _raw.Res, (char*)_tpt->_tpt, &_tpt->_size, GR_DEFAULT_CONTEXT, GR_FORMAT_DEFAULT);

// if error, set template size to 0 if (result < 0){ // Result < 0 => extraction problem _tpt->_size = 0;

}

Delphi

Var

 

ret: Integer;

Begin

 

// set current buffer size for the extract template template.size := GR_MAX_SIZE_TEMPLATE; ret := GrExtractEx(raw.img, raw.width, raw.height, raw.res, template.tpt, template.size, GR_DEFAULT_CONTEXT, GR_FORMAT_DEFAULT); // if error, set template size to 0 // Result < 0 => extraction problem if (ret < 0 ) then template.size := 0;

End;

Capture functions

GrCapInitialize< 0 ) then template.size := 0; End; Capture functions GrCapFinalize GrCapStartCapture 23 of 63 3/4/2009

GrCapFinalize< 0 ) then template.size := 0; End; Capture functions GrCapInitialize GrCapStartCapture 23 of 63 3/4/2009

GrCapStartCapture(ret < 0 ) then template.size := 0; End; Capture functions GrCapInitialize GrCapFinalize 23 of 63

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

GrCapStopCapture GrCapSaveRawImageToFile GrCapLoadImageFromFile GrCapRawImageToHandle GrCapInitialize
GrCapStopCapture
GrCapSaveRawImageToFile
GrCapLoadImageFromFile
GrCapRawImageToHandle
GrCapInitialize

Initializes the fingerprint capture module.

Prerequisites

A valid license must exist on system.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] StatusEventHandler

Callback function responsible for handling the status events.

See also

Callback handlersresponsible for handling the status events. See also Declaration C++ int stdcall GrCapInitialize(StatusCallBack*

Declaration

C++

int

stdcall

GrCapInitialize(StatusCallBack* StatusEventHandler);

Delphi

Function GrCapInitialize(StatusEventHandler: GRCAP_STATUS_EVENT_PROC): Integer; stdcall;

Sample Code

C++

retVal= GrCapInitialize (StatusEventHandler);

Delphi

retVal:= GrCapInitialize (@StatusEventHandler);

GrCapFinalize

Stops the capture module, freeing any resource used.

Prerequisites

The capture module must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Declaration

C++

int

stdcall GrCapFinalize();

Delphi

function GrCapFinalize(): Integer; stdcall;

Sample Code

C++

retVal= GrCapFinalize();

Delphi

retVal:= GrCapFinalize();

GrCapStartCapture

Starts capturing fingerprint images from the supplied fingerprint reader.

Prerequisites

The capture module must have been previously initialized. The supplied fingerprint reader must be connected, working and recognized as plugged by the capture module.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] idSensor

The ID of the fingerprint reader to start capturing images from.

[in] FingerEventHandler

Callback function responsible for handling the finger events.

[in] ImageEventHandler

Callback function responsible for handling the image event.

See also Callback handlers Declaration C++ int stdcall GrCapStartCapture(char* idSensor, FingerCallBack*
See also
Callback handlers
Declaration
C++
int
stdcall
GrCapStartCapture(char* idSensor, FingerCallBack* FingerEventHandler, ImageCallBack* ImageEventHandler);

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Delphi

function GrCapStartCapture(idSensor: PChar; FingerEventHandler: GRCAP_FINGER_EVENT_PROC; ImageEventHandler: GRCAP_IMAGE_EVENT_PROC): Integer; stdcall;

Sample Code

C++

if (event == GR_PLUG) { // Start capturing from the plugged reader. GrCapStartCapture(idSensor, myFingerCallBack, myImageCallBack);

}

Delphi

if (event = GR_PLUG) then // Start capturing from the plugged reader. GrCapStartCapture(idSensor, @FingerCallback, @ImageCallback)

GrCapStopCapture

Stops capturing fingerprint images from the supplied fingerprint reader.

Prerequisites

The capture module must have been previously initialized. Image capture must have been previously started on the supplied fingerprint reader.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] idSensor

The ID of the fingerprint reader to stop capturing images from.

Declaration

C++

int GrCapStopCapture (string idSensor)

Delphi

Function GrCapStopCapture(const idSensor: WideString): integer;

Sample Code

C++

if (event == GR_UNPLUG) { // Stop capturing from the unplugged reader GrCapStopCapture(idSensor);

}

Delphi

if (event = GR_UNPLUG) then // Stop capturing from the unplugged reader. GrCapStopCapture(idSensor);

GrCapSaveRawImageToFile

Saves a raw grayscale fingerprint image as a picture file.

Prerequisites

A valid license must exist on system.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] rawImage

A raw grayscale fingerprint image.

[in] width

Fingerprint image width in pixels.

[in] height

Fingerprint image height in pixels.

[in] filename

The complete path and filename of the picture file to create.

[in] imageFormat

Picture file format.

See also

 

Image constants 

Fingerprint Image Formatt Picture file format. See also   Image constants Declaration   C++ int stdcall

Declaration

 

C++

int

stdcall

GrCapSaveRawImageToFile(unsigned char* rawImage, unsigned int width, unsigned int height, char* fileName, GRCAP_IMAGE_FORMAT imageFormat);

Delphi

function GrCapSaveRawImageToFile(rawImage: PChar; width, height: Integer; filename: String; imageFormat: GRCAP_IMAGE_FORMAT): Integer; stdcall;

Sample Code

C++

char *temp = (char*)Marshal::StringToHGlobalAnsi(sfdImage-> FileName).ToPointer(); if (GrCapSaveRawImageToFile(_raw.img, _raw.width, _raw.height, temp, GRCAP_IMAGE_FORMAT_BMP) != GR_OK) { WriteLog("Failed to save the file.");

}

Marshal::FreeHGlobal((int)temp);

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Delphi

if GrCapSaveRawImageToFile(raw.img, raw.width, raw.Height, fname, GRCAP_IMAGE_FORMAT_BMP) <> GR_OK then WriteLog('Failed to save the file.');

GrCapLoadImageFromFile

Loads a grayscale fingerprint image from a picture file.

Prerequisites

The capture module must have been previously initialized. Picture file must be in one of the supported formats, as defined in the Image constants section. Image capture must have been previously started on the "File" sensor.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] fileName

The complete path and filename of the picture file to load.

[in] res

Image resolution in DPI.

Remarks

On success, an image event is fired for the "File" sensor.

See also

Callback handlersimage event is fired for the "File" sensor. See also Declaration C++ int stdcall GrCapLoadImageFromFile(char*

Declaration

C++

int

stdcall

GrCapLoadImageFromFile(char* fileName, int res);

Delphi

function GrCapLoadImageFromFile(filename: String; res: Integer): Integer; stdcall;

Sample Code

C++

// Getting the resolution. int resolution = Convert::ToInt32(InputBox::ShowModal("What is the image resolution?", "Resolution", "")); // Checking if the action was canceled, no value or an invalid value was entered. if (resolution != 0) GrCapLoadImageFromFile(FileName,resolution);

Delphi

// Getting image resolution. resolution := StrToInt(InputBox('What is the image resolution?', 'Resolution', '')); // Checking if the action was canceled, no value or an invalid value was entered. if (resolution <> 0) then begin GrCapLoadImageFromFile(FileName, resolution);

end;

GrCapRawImageToHandle

Returns a displayable Windows bitmap handle (HBITMAP) to the supplied raw grayscale fingerprint image.

Prerequisites

A valid license must exist on system.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] rawImage

A raw grayscale fingerprint image.

[in] width

Fingerprint image width in pixels.

[in] height

Fingerprint image height in pixels.

[in] hdc

The device context handle (HDC) in which the bitmap will be created.

[out] handle

The displayable fingerprint image Windows bitmap handle (HBITMAP).

See also

 

Fingerprint Image Format 

Declaration

 

C++

int

stdcall

GrCapRawImageToHandle(unsigned char* rawImage, unsigned int width, unsigned int height, HDC hdc, HBITMAP &handle);

Delphi

function GrCapRawImageToHandle(rawImage: PChar; width, height: Integer; hdc: HDC; var handle: HBITMAP): Integer; stdcall;

Sample Code

C++

// handle to finger image

Fingerprint SDK 2009 Developer's Manual

HBITMAP handle; // screen HDC HDC hdc = GetDC(0);

// get raw image GrCapRawImageToHandle(_raw.img, _raw.width, _raw.height, hdc, handle);

// draw image on picture box if (handle != NULL) { Image *curImage = System::Drawing::Image::FromHbitmap(handle); _pbPic->Image = curImage;

}

// release HDC ReleaseDC(HWND(NULL), hdc);

Delphi

// get screen HDC hdc := GetDC(formMain.image.Canvas.Handle);

// get raw image GrCapRawImageToHandle(raw.img, raw.width, raw.height, hdc, handle);

// draw image on picture box if handle <> 0 then begin

formMain.image.Picture.Bitmap.Handle := handle; formMain.image.Repaint();

end;

// release screen HDC ReleaseDC(formMain.image.Canvas.Handle, hdc);

Biometric display functions

GrBiometricDisplayhdc); Biometric display functions GrSetBiometricDisplayColors GrBiometricDisplay

GrSetBiometricDisplayColors

GrBiometricDisplay

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

Returns a displayable Windows bitmap handle (HBITMAP) to the supplied raw grayscale fingerprint image with its minutiae, segments and minutiae direction drawn.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] tpt

[in] rawImage

[in] width

[in] height

[in] res

[in] hdc

[out] handle

Template corresponding to the raw grayscale fingerprint image supplied.

A raw grayscale fingerprint image.

Fingerprint image width in pixels.

Fingerprint image height in pixels.

Fingerprint image resolution in DPI.

The device context handle (HDC) in which the bitmap will be created.

The displayable fingerprint image Windows bitmap handle (HBITMAP).

[in] matchContext

To have only the minutiae, segments and minutiae direction of the supplied fingerprint drawn, this parameter must be GR_NO_CONTEXT. To have also the macthing minutiae, segments and minutiae direction drawn, this parameter must be the context identifier corresponding to the matching (identification or verification).

See also

Fingerprint Image Formatto the matching (identification or verification). See also Declaration C++ int stdcall GrBiometricDisplay(char*

Declaration

C++

int

stdcall

GrBiometricDisplay(char* tptQuery, unsigned char* rawImage, int width, int height, int res, HDC hdc, HBITMAP &handle, int matchContext);

Delphi

function GrBiometricDisplay (templateReference: Pchar, rawImage: PChar; width, height: Integer; hdc: HDC; var handle: HBITMAP, context: Integer): Integer; stdcall;

Sample Code

C++

// the template class

gc class TTemplate

{

public: // Template data. System::Byte _tpt[]; // Template size int _size;

TTemplate(void);

~TTemplate(void);

};

// Raw image data type. gc struct TRawImage { // Image data. System::Object *img; // Image width. unsigned int width; // Image height. unsigned int height; // Image resolution. int Res;

};

// handle to finger image HBITMAP handle; // screen HDC

Fingerprint SDK 2009 Developer's Manual

http://www.griaulebiometrics.com/page/pt-br/book/export/html/361

HDC hdc = GetDC(0);

// get image with biometric info GrBiometricDisplay((char *)_tpt->_tpt, _raw.img, _raw.width, _raw.height, _raw.Res, hdc, handle, context);

// draw image on picture box if (handle != NULL) { Image *curImage = System::Drawing::Image::FromHbitmap(handle); _pbPic->Image = curImage;

}

// release HDC ReleaseDC(HWND(NULL), hdc);

Delphi

type // Raw image data type. TRawImage = record // Image data. img: OleVariant; // Image width. width: Integer; // Image height. Height: Integer; // Image resolution. Res: Integer;

end;

// Define a type to temporary storage of template TTemplate = class

public // Template data.

begin

tpt:

// Template size

size:

// Template ID (if retrieved from DB)

id:

PSafeArray;

Integer;

Integer;

// get screen HDC hdc := GetDC(formMain.image.Canvas.Handle);

// get image with biometric info GrBiometricDisplay(template.tpt,raw.img, raw.width, raw.height,raw.Res, hdc,handle, context)

// draw image on picture box if handle <> 0 then begin

formMain.image.Picture.Bitmap.Handle := handle; formMain.image.Repaint();

end;

// release screen HDC ReleaseDC(formMain.image.Canvas.Handle, hdc);

End

GrSetBiometricDisplayColors

Sets the colors used to draw the minutiae, matching minutiae, segments, matching segments, minutiae directions and matching minutiae directions in the bitmap returned by the GrBiometricDisplay function.

Prerequisites

The Fingerprint SDK library must have been previously initialized.

Return

On success, GR_OK is returned. On failure, the appropriate error code is returned.

Parameters

[in] minutiaeColor

Minutiae color in BGR 24-bits format.

[in] minutiaeMatchedColor

Matching minutiae color in BGR 24-bits format.

[in] segmentsColor

Segments color in BGR 24-bits format.

[in] segmentsMatchedColor

Matching segments color in BGR 24-bits format.

[in] directionsColor

Minutiae direction color in BGR 24-bits format.

[in] directionsMatchedColor

Matching minutiae direction color in BGR 24-bits format.

Remarks

Passing GR_IMAGE_NO_COLOR as any color causes the corresponding feature (minutia, matching minutia, segment, matching segment, minutia direction or matching minutia direction) not being drawn.

Passing all colors as GR_IMAGE_NO_COLOR causes the default colors to be used: red for minutiae, green for segments, blue for minutiae direction and magenta for matching minutiae, segments and minutiae direction.

See also Color Coding Format Declaration C++ int stdcall GrSetBiometricDisplayColors(int minutiaeColors, int
See also
Color Coding Format
Declaration
C++
int
stdcall
GrSetBiometricDisplayColors(int minutiaeColors, int minutiaeMatchedColors, int segmentColors, int segmentMatchedColors, int directionColors, int directionMatchedColor

Delphi

function GrSetBiometricDisplayColors (minutiaeColors, minutiaeMatchedColors, segmentColors, segmentMatchedColors, directionColors, directionMatchedColors: Integer): Integer; stdcal

Sample Code

C++

// set minutiae colors to red int minutiaeColor=Color::Red; int minutiaeMatchColor=Color::Red; // don't display any other biometric info int segmentsColor = GR_IMAGE_NO_COLOR; int segmentsMatchColor = GR_IMAGE_NO_COLOR; int directionsColor = GR_IMAGE_NO_COLOR; int directionsMatchColor = GR_IMAGE_NO_COLOR; GrSetBiometricDisplayColors(minutiaeColor, minutiaeMatchColor, segmentsColor, segmentsMatchColor, directionsColor, directionsMatchColor);

Delphi

Fingerprint SDK 2009 Developer's Manual

http://www.