1.0.0 • Published 3 years ago

nrv2e-decompress v1.0.0

Weekly downloads
20
License
GPL-2.0
Repository
github
Last release
3 years ago

nrv2e-decompress

Build Status Coverage Status npm

Decompress with NRV2E algorithm.

Requirements

This is ESM module which requires ES2020 and Node >= 14.

Installation

npm install nrv2e-decompress

Additionally for Typescript:

npm install -D @types/node

Usage

import nrv2eDecompress from 'nrv2e-decompress'

nrv2eDecompress

nrv2eDecompress(input, output, bufferBits)

Arguments:

  • input is a Buffer with compressed data
  • output is a Buffer from decompressed data and it have to be pre-allocated, ie. with Buffer.alloc method
  • bufferBits is a number of control buffer bits: 8, 16 or 32 (optional: default: 8)

Example:

// Polish vehicle registration certificate scanned from Aztec 2D barcode
const b64Input = 'BgQAANtYAA...'
const binInput = Buffer.from(b64Input, 'base64')

// 4 first bytes in Aztec code are output length
const outputLength = binInput.readUInt32LE(0)
const utf16Output = Buffer.alloc(outputLength)
const compressedInput = binInput.slice(4)

nrv2eDecompress(compressedInput, utf16Output)

const textOutput = utf16Output.toString('utf16le')

License

Copyright (c) 2018-2021 Piotr Roszatycki piotr.roszatycki@gmail.com

This code is based on UCL data compression library:

Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer All Rights Reserved.

GPL-2.0