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

requires com.machinezoo.fingerprintio;


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.


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 ....