tony-xlh / vision-camera-dynamsoft-barcode-reader

React Native Vision Camera Frame Processor Plugin of Dynamsoft Barcode Reader
MIT License
73 stars 15 forks source link

vision-camera-dynamsoft-barcode-reader

React Native Vision Camera Frame Processor Plugin of Dynamsoft Barcode Reader.

If you do not want to use Vision Camera, you can use the offical React Native package by Dynamsoft.

Versions

For vision-camera v2, use versions 0.x.

For vision-camera v3, use versions 1.x.

For vision-camera v4, use versions >= 2.0.0.

SDK Versions Used for Different Platforms

Product Android iOS
Dynamsoft Barcode Reader 9.x 9.x

Installation

yarn add vision-camera-dynamsoft-barcode-reader
cd ios && pod install

Add the plugin to your babel.config.js:

module.exports = {
   plugins: [['react-native-worklets-core/plugin']],
    // ...

Note: You have to restart metro-bundler for changes in the babel.config.js file to take effect.

Usage

  1. Scan barcodes with vision camera.

    import { decode } from 'vision-camera-dynamsoft-barcode-reader';
    
    // ...
    const frameProcessor = useFrameProcessor((frame) => {
     'worklet';
     const barcodes = decode(frame);
    }, []);
  2. Scan barcodes from a base64-encoded static image.

    let results = await decodeBase64(base64);
  3. License initialization (apply for a trial license).

    await initLicense("your license");

Interfaces

TextResult:

 TextResult{
    barcodeText:string;
    barcodeFormat:string;
    barcodeBytesBase64:string;
    x1:number;
    x2:number;
    x3:number;
    x4:number;
    y1:number;
    y2:number;
    y3:number;
    y4:number;
}

Configuration:

DBRConfig{
  template?:string;
  license?:string;
  isFront?:boolean;
  rotateImage?:boolean;
}

Since the natural camera sensor's orientation is landscape, the camera image may be rotated for preview while the raw image we get is still not rotated. If we enable rotateImage, the plugin will rotate the image automatically to match the camera preview. If it is disabled, the plugin will rotate the returned coordinates instead of the image which may have a slight performance gain. isFront is needed for rotating the coordinates since the image of front camera is mirrored. isFront is Android-only.

Supported Platforms

Supported Barcode Symbologies

Blog

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT