Barcode recognition SDK:

This barcode recognition SDK allow you to read linear barcodes (Code128, Code39, EAN, etc) and 2D barcodes (QR Code, Data Matrix, PDF417 and Micro QR Code).

Download our barcode recognition SDK and check :

  • how easy you can integrate it in your applications
  • the accuracy and the speed of our libraries

Barcode recognition features

Support for common 1D and 2D Barcodes

  • Linear barcode types: EAN 13, EAN 8, UPC-A, UPC-E, Code 39, Code 128, UCC/EAN 128, Interleaved 2 of 5, Codabar, Industrial2of5, BCD Matrix, Code 93, Inverted2of5, IATA2of 5, Matrix2of 5, Datalogic
  • 2D symbols: QR Code, Data Matrix, PDF417 and Micro QR Code

Read barcodes of any orientation

Read for multipage TIFF, JPEG, BMP and PNG black and white, grayscale or color images

Highly customizable. You may set: region of interest, number of barcodes to be returned, bars color (black, white or any), orientation (horizontal, vertical, diagonal), barcode types

Read barcodes from poor quality images

Detects barcode type and return many information: type, result, position, skew angle, color of the bars, checksum, confidence (for 2d barcodes)

Handles the ECC error correction algorithm for recognition of partially destroyed symbols

Cross-platform: the SDK is available as dynamic libraries and Active-X controls for Windows, and as dinamyc libraries for Linux and Mac OS. Porting to embedded systems can be made if requested.

Easy to integrate. Only a few lines of code are necessary to add barcode recognition support to your application. Download the SDK and get sample source code

Examples to use with C/C++, C#, Delphi, Visual Basic

Find barcodes that cannot be recognized. It may return barcode-like areas to be processed manually

Source code example in C/C++ for barcode recognition

WORD ret;
ScReadTIF( &scImg, "image.tif", 0 );
barScanner.pDIB = scImg.pDIB;
ret = ScScanBar( &barScanner);
if ( ret != SC_OK)
fprintf( stdout, "ScScanBar returned %d\n", ret);
return ret;
if( barScanner.bBarcFound)
int i;
fprintf( stdout, "%d barcodes found\n\n", barScanner.bBarcFound );
for( i=0;i {
fprintf( stdout, "%s->%s\n", GetCodeName(barScanner.pBarcArray[i].dwCodeType), barScanner.pBarcArray[i].pcInfo );
fprintf( stdout, "No barcodes found\n" );