FingerprintIO template codecs

FingerprintIO is a Java library that encodes and decodes publicly documented fingerprint template formats defined by ISO and ANSI.

Currently supported formats include:

If you are not sure whether your templates are supported, try to upload one to the online template decoder. FingerprintIO itself does not perform feature extraction or matching. Use SourceAFIS for that.

Download

Get FingerprintIO from Maven Central:

Maven tool
<dependency>
    <groupId>com.machinezoo.fingerprintio</groupId>
    <artifactId>fingerprintio</artifactId>
    <version>1.3.3</version>
</dependency>

Or clone sources from GitHub or Bitbucket. Don't forget to configure your build for Java 11+. Last version compatible with Java 8 was 1.1.1. Sources and binaries are distributed under Apache License 2.0.

If your project is a Java module, add the following declaration to your module-info.java:

requires com.machinezoo.fingerprintio;

Usage

Here's a quick example demonstrating decoding of ANSI 378 template:

byte[] serialized = Files.readAllBytes(Paths.get("ansi378-2004-example.dat"));
if (Ansi378v2004Template.accepts(serialized)) {
   System.out.println("This is an ANSI 378-2004 template.");
   var template = new Ansi378v2004Template(serialized);
   int fpcount = template.fingerprints.size();
   System.out.printf("Template contains %d fingerprint(s).\n", fpcount);
   var fingerprint = template.fingerprints.get(0);
   int mincount = fingerprint.minutiae.size();
   System.out.printf("First fingerprint has %d minutiae.\n", mincount);
}

Object structure closely matches actual template structure. See javadoc for details.

Contribute

FingerprintIO was developed by Robert Važan as a SourceAFIS spin-off. If you have any suggestions, including requests for documentation, report an issue (GitHub, Bitbucket) or submit a pull request (GitHub, Bitbucket). You can reach the author via email robert.vazan@tutanota.com.