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:

FingerprintIO itself does not perform feature extraction or matching. Use SourceAFIS for that.


Get FingerprintIO from Maven Central:


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


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);

There's currently no javadoc, but object structure closely matches actual template structure. See classes Ansi378v2004Template, Ansi378v2009Template, Ansi378v2009Am1Template, and Iso19794v2005p2Template.


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 .