{"id":32397884,"url":"https://github.com/mhshams/jnbis","last_synced_at":"2025-10-25T07:58:18.486Z","repository":{"id":31005069,"uuid":"34563482","full_name":"mhshams/jnbis","owner":"mhshams","description":"NIST Biometric Image Software (Java Implementation)","archived":false,"fork":false,"pushed_at":"2023-11-26T22:43:51.000Z","size":44808,"stargazers_count":107,"open_issues_count":0,"forks_count":75,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-07-28T03:29:58.187Z","etag":null,"topics":["java","nist","nist-biometric-image","wsq"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhshams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-25T09:54:55.000Z","updated_at":"2025-07-27T20:39:06.000Z","dependencies_parsed_at":"2022-08-07T16:15:15.490Z","dependency_job_id":null,"html_url":"https://github.com/mhshams/jnbis","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/mhshams/jnbis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhshams%2Fjnbis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhshams%2Fjnbis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhshams%2Fjnbis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhshams%2Fjnbis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhshams","download_url":"https://codeload.github.com/mhshams/jnbis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhshams%2Fjnbis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280923458,"owners_count":26414235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","nist","nist-biometric-image","wsq"],"created_at":"2025-10-25T07:56:37.284Z","updated_at":"2025-10-25T07:58:18.479Z","avatar_url":"https://github.com/mhshams.png","language":"Java","readme":"# JNBIS\nJava Implementation of NIST Biometric Image Software (NBIS) \n\n![CI](https://github.com/mhshams/jnbis/actions/workflows/ci.yaml/badge.svg)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.mhshams/jnbis/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.mhshams/jnbis)\n[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)\n\n\u003e 🛠️ **NOTE:** Due to lack of time, this project is in maintenance mode. Only critical bugs will be fixed. Pull requests are always welcome!\n\n### About JNBIS\nJNBIS is a library, written in Java, to extract and decode NIST (National Institute of Standards and Technology) compressed files and WSQ (Wavelet Scalar Quantization) images. \nThe code has been converted from NBIS (NIST Biometric Image Software) version 1.1 which is written in C.\nYou can find more about NIST Biometric Image Software [here](http://www.nist.gov/itl/iad/ig/nbis.cfm).\n\n### Quick Start\n##### Build and Install\nJNBIS is available in [the maven central repository](http://search.maven.org/#browse), so you just need to download and add it to your project libraries or \nif you are using maven, add it to project dependencies.\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.mhshams/jnbis/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.mhshams/jnbis)\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.mhshams\u003c/groupId\u003e\n  \u003cartifactId\u003ejnbis\u003c/artifactId\u003e\n  \u003cversion\u003e2.x.x\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nAlternatively, you can clone the source code and build it with maven. You need **JDK** version **1.8 or higher** to build the code. \n```bash\n$ git clone git@github.com:mhshams/jnbis.git\n$ cd jnbis\n$ mvn package\n```\n### Examples\n##### WSQ Decoding \nConvert WSQ image to PNG image and return the result as **File**\n```Java\nFile png = Jnbis.wsq()\n                .decode(\"path/to/wsq/file.wsq\")\n                .toPng()\n                .asFile(\"/path/to/final/file.png\");\n```\nConvert WSQ image to GIF image and return the result as **File**\n ```Java\nFile gif = Jnbis.wsq()\n                .decode(new File(\"path/to/wsq/file.wsq\"))\n                .toGif()\n                .asFile(\"/path/to/final/file.gif\");\n```\nConvert WSQ image (as input stream) to JPEG image and return the result as **File**\n```Java\nFile jpg = Jnbis.wsq()\n                .decode(wsqInputStream)\n                .toJpg()\n                .asFile(\"/path/to/final/file.jpg\");\n ```\n Convert WSQ image to PNG image and return the result as **InputStream** \n```Java\n InputStream pngStream = Jnbis.wsq()\n                              .decode(\"path/to/wsq/file.wsq\")\n                              .toPng()\n                              .asInputStream();\n```\nConvert WSQ image to GIF image and return the result as **Byte Array**\n```Java\nbyte[] gifBytes = Jnbis.wsq()\n                       .decode(new File(\"path/to/wsq/file.wsq\"))\n                       .toGif()\n                       .asByteArray();\n```\n \nFor more examples check the **SampleWsqTest.java** in the project source. \n##### NIST Decoding \nDecode a NIST file with given file name\n```Java\nNist nist = Jnbis.nist().decode(\"/path/to/nist/file\"));\n```\n\nDecode a NIST file with given **File** instance\n```Java\nNist nist = Jnbis.nist().decode(new File(\"/path/to/nist/file\"));\n```\n\nDecode a NIST file with given **InputStream** instance\n```Java\nNist nist = Jnbis.nist().decode(nistInputStream));\n```\n\n**Nist** instance contains different types of data, depending on file type. \nHere is a sample code that extract all fingerprints and save them in individual files. \n```Java\nNist nist = Jnbis.nist().decode(new File(\"/path/to/nist/file\"));\n\nfor (HighResolutionGrayscaleFingerprint fp : nist.getHiResGrayscaleFingerprints()) {\n    Jnbis.wsq()\n        .decode(fp.getImageData())\n        .toPng()\n        .asFile(\"/path/fp-\" + fp.getImageDesignationCharacter() + \".png\");\n}\n ```\nFor more examples check the **SampleNistTest.java** and **AnsiReferencesTest.java** in the project source. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhshams%2Fjnbis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhshams%2Fjnbis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhshams%2Fjnbis/lists"}