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:
- ANSI 378-2004
- ANSI 378-2009
- ANSI 378-2009/AM 1
- ISO 19794-2:2005 (off-card)
- ISO 19794-2:2011 (off-card)
FingerprintIO itself does not perform feature extraction or matching. Use SourceAFIS for that.
Download
Get FingerprintIO from Maven Central:
<dependency>
<groupId>com.machinezoo.fingerprintio</groupId>
<artifactId>fingerprintio</artifactId>
<version>1.3.0</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 .