Skip to content

kxingjs/kxing

Repository files navigation

KXing

Build Status

code style: prettier

NPM

KXing ("kogera crossing") is JavaScript porting project of ZXing, barcode image processing library implemented in Java.

Installation

You can install via npm.

$ npm install --save kxing
// or yarn

Usage

Browsers

You can use it within the browser. Found UMD KXing file within node_modules.

<!--Load UMD-->
<script src="./node_modules/kxing/dist/index.js"></script>
<script>
    // Load a pixel data
    KXing.ImageLoader.load(filePath).then(imageData => {
        try {
            // Get reader
            const reader = KXing.getReader();
            // Decode QRCode image.
            const result = reader.decode(imageData);
        } catch (e) {
            console.error("fail to decode.", e);
        }
    });
</script>

With bundler

If you use bundler, import as ES6 module.

import { getReader, ImageLoader } from "kxing";

// Load a pixel data
ImageLoader.load(filePath).then(imageData => {
  try {
    // Get reader
    const reader = KXing.getReader();
    // Decode QRCode image.
    const result = reader.decode(imageData);
  } catch (e) {
    console.error("fail to decode.", e);
  }
});

API

reader = getReader()

Getter that KXing Reader instance.

  • The instance can be reused.

Important notes

Current version can provide QRCodeReader only.

result = reader.decode(imageData)

Decode a barcode image and return result object.

  • imageData is ImageData instance, pixel data of an area of a canvas element. You can get it from CanvasRenderingContext2D.getImageData().
  • decode() provide result that has some values: - text: Decoded string. - rawBytes: Raw bytes encoded by the barcode - numBits: Number of valid bits. - barcodeFormat - timestamp
  • In case to fail decode, throw Error: (e.g.: NotFoundError, FormatError).

multiReader = getMultiReader()

Getter that KXing MultipleBarcodeReader instance.

  • The instance can be reused.

Important notes

Current version can provide MultiQRCodeReader only.

results = multiReader.decodeMultiple(imageData)

Decode a barcode images and return results.