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