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 (except on-card)
- ISO 19794-2:2011 (except on-card)
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:
<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.