Fingerprint SDK Library for Android™

Fingerprint segmentation, Quality Assessment, Encoding and Matching.

Fingerprint SDK Library

Our fingerprint SDK, provides several key features which makes working with fingerprints easy. Fingerprint segmentation, Quality Assessment, Encoding and Matching. Our fingerprint encoder supports generating templates using ANSI INCITS 378-2004, ANSI INCITS 378-2009 and ANSI INCITS 378-2009 amendment 1 standards. Many pieces of information are used during matching including minutia location, ridge flow, ridge counts, classifications, core and deltas. Our SDK provide easy 1-1 or 1-many matching functions.

Learn More
Image Description
Image Description
Image Description
Image Description
Key features

Biometric Solutions Provider

Net-X Solutions are a cutting edge biometric solutions provider, our solutions are in use worldwide, securing data and personnel.

Integration

Supports the leading development environments.

We believe that the best way to see the features and benefits of our SDK is to trial it for yourself.

  • C++ / Java
  • Android Studio / Eclipse / NetBeans
  • Thread safe
  • Rapid Application development
  • Comprehensive SDK documentation
  • Bring your application to market faster
Trial

Request a 30 day FREE SDK Trial

We believe that the best way to see the features and benefits of our SDK is to trial it for yourself.

Request 30 day FREE SDK Trial
Code Examples

Example code for C#, Java and Perl

See how easy it is to integrate the Fingerprint SDK into your projects

// file: EncodeAndMatch.java // This file illustrates the use of the IDX Fingerprint API using Java import com.netxsolutions.idx.fingerprint.FingerprintWrapper; import com.netxsolutions.idx.fingerprint.FingerPosition; public class EncodeAndMatch { static { System.loadLibrary("FingerprintWrapperJava"); } public static void main(String argv[]) { System.out.println("Encode and Match Demo"); System.out.println("Encoding Left Thumb... "); int ret = FingerprintWrapper.CreateFingerTemplate("..\\sample files\\LeftThumb1.bmp", "C:/IDX - Example Output/LeftThumb1.fmr",0,0,FingerPosition.LEFT_THUMB); if (ret<0) { System.out.println("Error: " + ret); } System.out.println("Encoding Second Left Thumb... "); ret = FingerprintWrapper.CreateFingerTemplate("..\\sample files\\LeftThumb2.bmp", "C:/IDX - Example Output/LeftThumb2.fmr",0,0,FingerPosition.LEFT_THUMB); if (ret<0) { System.out.println("Error: " + ret); } System.out.println("Encoding Right Thumb... "); ret = FingerprintWrapper.CreateFingerTemplate("..\\sample files\\RightThumb1.bmp", "C:/IDX - Example Output/RightThumb1.fmr",0,0,FingerPosition.RIGHT_THUMB); if (ret<0) { System.out.println("Error: " + ret); } // Compare Left Thumb with second scan of Left Thumb System.out.print("Comparing prints (Left Thumbs)... "); ret = FingerprintWrapper.CompareFingerTemplate("C:/IDX - Example Output/LeftThumb1.fmr", "C:/IDX - Example Output/LeftThumb2.fmr"); if (ret<0) { System.out.println("Error: " + ret); }else{ if (ret>40) { System.out.println("MATCH score (" + ret + ")"); }else{System.out.println("NO MATCH");} } // Compare Left Thumb with Right Thumb System.out.print("Comparing prints (Left Thumb with Right Thumb)... "); ret = FingerprintWrapper.CompareFingerTemplate("C:/IDX - Example Output/RightThumb1.fmr", "C:/IDX - Example Output/LeftThumb2.fmr"); if (ret<0) { System.out.println("Error: " + ret); }else{ if (ret>40) { System.out.println("MATCH score (" + ret + ")"); }else{System.out.println("NO MATCH");} } } }
// file: NFIQFromFile.java // This file illustrates the use of the IDX Fingerprint API using Java import com.netxsolutions.idx.fingerprint.FingerprintWrapper; public class NFIQFromFile { static { System.loadLibrary("FingerprintWrapperJava"); } public static void main(String argv[]) { float[] score = new float[1]; int ret = FingerprintWrapper.CheckQuality("..\\sample files\\RightThumb1.bmp", score); System.out.println("NFIQ Result Code:" + ret); System.out.println("NFIQ Score:" + score[0]); } }
// file: Segmentation.java // This file illustrates the use of the IDX Fingerprint API using Java import com.netxsolutions.idx.fingerprint.FingerPosition; import com.netxsolutions.idx.fingerprint.Segmentor; import com.netxsolutions.idx.fingerprint.segment; public class Segmentation { static { System.loadLibrary("FingerprintWrapperJava"); } public static void main(String argv[]) { float[] score = new float[1]; Segmentor segmentor = new Segmentor(); // Load a four finger slap int ret = segmentor.LoadImageFromFile("..\\sample files\\LeftSlap.bmp",0,0); System.out.println("Segmentor Load Image Result: " + ret); if (ret==0) { ret = segmentor.Segment(FingerPosition.PLAIN_LEFT_FOUR_FINGERS); System.out.println("Segmentor Result: " + ret); for (int segIndex=0;segIndex<4;segIndex++) { segment seg = segmentor.GetSegmentedLocation(segIndex); System.out.println("Segment1: " + seg.getX() + "," + seg.getY() + " - " + seg.getWidth() + "," + seg.getHeight() + " Angle: " + seg.getRotation()); segmentor.GetNFIQ(segIndex,score); System.out.println("NFIQ Score:" + score[0]); } ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//SegmentTest1.bmp",0); System.out.println("Save Segment1: " + ret); ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//SegmentTest2.bmp",1); System.out.println("Save Segment2: " + ret); ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//SegmentTest3.bmp",2); System.out.println("Save Segment3: " + ret); ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//SegmentTest4.bmp",3); System.out.println("Save Segment4: " + ret); } } }
// file: SegmentationTwoFingers.java // This file illustrates the use of the IDX Fingerprint API using Java import com.netxsolutions.idx.fingerprint.FingerPosition; import com.netxsolutions.idx.fingerprint.Segmentor; import com.netxsolutions.idx.fingerprint.segment; public class SegmentationTwoFingers { static { System.loadLibrary("FingerprintWrapperJava"); } public static void main(String argv[]) { float[] score = new float[1]; Segmentor segmentor = new Segmentor(); // Load a four finger slap int ret = segmentor.LoadImageFromFile("..\\sample files\\Left_Index_Middle.bmp",0,0); System.out.println("Segmentor Load Image Result: " + ret); if (ret==0) { // When segmenting Dual Fingers use LEFT_AND_RIGHT_THUMBS option ret = segmentor.Segment(FingerPosition.LEFT_AND_RIGHT_THUMBS); System.out.println("Segmentor Result: " + ret); for (int segIndex=0;segIndex<2;segIndex++) { segment seg = segmentor.GetSegmentedLocation(segIndex); System.out.println("Segment1: " + seg.getX() + "," + seg.getY() + " - " + seg.getWidth() + "," + seg.getHeight() + " Angle: " + seg.getRotation()); segmentor.GetNFIQ(segIndex,score); System.out.println("NFIQ Score:" + score[0]); } ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//LeftMiddle.bmp",0); System.out.println("Save Segment1: " + ret); ret = segmentor.SaveSegmentedImage("C://IDX - Example Output//LeftIndex.bmp",1); System.out.println("Save Segment2: " + ret); } } }