BarCodeReader
Source: Recognition.
BarCodeReader encapsulates an image which may contain one or several barcodes, it then can perform ReadBarCodes operation to detect barcodes.
Methods
new BarCodeReader(image, rectangles, decodeTypes)
Initializes a new instance of the BarCodeReader
Example
//This sample shows how to detect Code39 and Code128 barcodes.
let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_STANDARD, DecodeType.CODE_128]);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode Type: " + result.getCodeTypeName());
console.log("BarCode CodeText: " + result.getCodeText());
});
Parameters
Name | Type | Optional | Description |
---|---|---|---|
image |
|
|
encoded as base64 string or path to image |
rectangles |
|
|
array of object by type Rectangle |
decodeTypes |
|
|
the array of objects by DecodeType |
Methods
importFromXml(xmlFile)
Exports BarCode properties to the xml-file specified
Parameter
Name | Type | Optional | Description |
---|---|---|---|
xmlFile |
|
|
The name of the file |
- Returns
-
Whether or not export completed successfully. Returns True in case of success; False Otherwise
containsAny()
Determines whether any of the given decode types is included into
Parameter
Name | Type | Optional | Description |
---|---|---|---|
...decodeTypes |
|
|
Types to verify. |
- Returns
-
bool Value is a true if any types are included into.
exportToXml(xmlFile)
Exports BarCode properties to the xml-file specified
Parameter
Name | Type | Optional | Description |
---|---|---|---|
xmlFile |
|
|
The name of the file |
- Returns
-
Whether or not export completed successfully. Returns True in case of success; False Otherwise
getBarcodeSettings()
The main BarCode decoding parameters. Contains parameters which make influence on recognized data.
- Returns
-
The main BarCode decoding parameters
getChecksumValidation()
Enable checksum validation during recognition for 1D barcodes.
Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible.
Checksum never used: Codabar
Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5,
Matrix2of5, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN
Checksum always used: Rest symbologies
//This sample shows influence of ChecksumValidation on recognition quality and results
let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128");
generator.save("test.png");
let reader = new BarCodeReader("test.png", null, DecodeType.EAN_13);
//checksum disabled
reader.setChecksumValidation(ChecksumValidation.OFF);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
console.log("BarCode Value: " + result.getExtended().getOneD().getValue());
console.log("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
});
let reader = new BarCodeReader("test.png", null, DecodeType.EAN_13);
//checksum enabled
reader.setChecksumValidation(ChecksumValidation.ON);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
console.log("BarCode Value: " + result.getExtended().getOneD().getValue());
console.log("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
});
The checksum validation flag.
getCustomerInformationInterpretingType()
Gets the Interpreting Type for the Customer Information of AustralianPost BarCode.Default is CustomerInformationInterpretingType.OTHER.
getDetectEncoding()
A flag which force engine to detect codetext encoding for Unicode codesets.
Example
// This sample shows how to detect text encoding on the fly if DetectEncoding is enabled
image = "image.png";
let generator = new BarcodeGenerator(EncodeTypes.QR, "пїЅпїЅпїЅпїЅпїЅ"))
generator.getParameters().getBarcode().getQR().setCodeTextEncoding("UTF-8");
generator.save(image, BarCodeImageFormat.getPng());
//detects encoding for Unicode codesets is enabled
let reader = new BarCodeReader(image, null, DecodeType.QR);
reader.setDetectEncoding(true);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
//detect encoding is disabled
let reader = new BarCodeReader(image, null, DecodeType.QR);
reader.setDetectEncoding(false);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
getFoundBarCodes()
Gets recognized BarCodeResult array
Example
//This sample shows how to read barcodes with BarCodeReader
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
reader.readBarCodes();
for(let i = 0; reader.getFoundCount() > i; ++i)
console.log("BarCode CodeText: " + reader.getFoundBarCodes()[i].getCodeText());
- Returns
-
recognized BarCodeResult array
getFoundCount()
Gets recognized barcodes count
Example
//This sample shows how to read barcodes with BarCodeReader
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
reader.readBarCodes();
for(let i = 0; reader.getFoundCount() > i; ++i)
console.log("BarCode CodeText: " + reader.getFoundBarCodes()[i].getCodeText());
Value: The recognized barcodes count
getQualitySettings()
QualitySettings allows to configure recognition quality and speed manually. You can quickly set up QualitySettings by embedded presets: HighPerformance, NormalQuality, HighQuality, MaxBarCodes or you can manually configure separate options. Default value of QualitySettings is NormalQuality.
Example
//This sample shows how to use QualitySettings with BarCodeReader
let reader = new BarCodeReader("test.png", null, null);
//set high performance mode
reader.setQualitySettings(QualitySettings.getHighPerformance());
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
//normal quality mode is set by default
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
//set high performance mode
reader.setQualitySettings(QualitySettings.getHighPerformance());
//set separate options
reader.getQualitySettings().setAllowMedianSmoothing(true);
reader.getQualitySettings().setMedianSmoothingWindowSize(5);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
- Returns
-
QualitySettings to configure recognition quality and speed.
getStripFNC()
Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
Example
//This sample shows how to strip FNC characters<br>
let generator = new BarcodeGenerator(EncodeTypes.GS1Code128, "(02)04006664241007(37)1(400)7019590754");
generator.save("test.png");
let reader = new BarCodeReader("test.png", null, DecodeType.CODE_128);
//StripFNC disabled
reader.setStripFNC(false);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, DecodeType.CODE_128);
//StripFNC enabled
reader.setStripFNC(true);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
getTimeout()
Gets the timeout of recognition process in milliseconds.
Example
let reader = new BarCodeReader("test.png", null, null);
reader.setTimeout(5000);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
- Returns
-
The timeout.
readBarCodes()
Reads BarCodeResult from the image.
Example
//This sample shows how to read barcodes with BarCodeReader
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
reader.readBarCodes();
for(let i = 0; reader.getFoundCount() > i; ++i)
console.log("BarCode CodeText: " + reader.getFoundBarCodes()[i].getCodeText());
- Returns
-
Returns array of recognized {@code BarCodeResult}s on the image. If nothing is recognized, zero array is returned.
setBarCodeImage(value, ...areas)
Sets bitmap image and areas for recognition. Must be called before ReadBarCodes() method.
Example
//This sample shows how to detect Code39 and Code128 barcodes.
let bmp = "test.png";
let reader = new BarCodeReader();
reader.setBarCodeReadType([ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
var img = new Image();
img.src = 'path_to_image';
width = img.width;
height = img.height;
reader.setBarCodeImage(bmp, new Rectangle[] { new Rectangle(0, 0, width, height) });
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode Type: " + result.getCodeTypeName());
console.log("BarCode CodeText: " + result.getCodeText());
});
Parameters
Name | Type | Optional | Description |
---|---|---|---|
value |
|
|
The bitmap image for recognition. |
areas |
|
|
areas list for recognition Value can be repeated. |
- Throws
-
BarcodeException
setBarCodeReadType(...types)
Sets SingleDecodeType type array for recognition. Must be called before readBarCodes() method.
Example
//This sample shows how to detect Code39 and Code128 barcodes.
let reader = new BarCodeReader();
reader.setBarCodeReadType([ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
reader.setBarCodeImage("test.png");
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode Type: " + result.getCodeTypeName());
console.log("BarCode CodeText: " + result.getCodeText());
});
Parameter
Name | Type | Optional | Description |
---|---|---|---|
types |
|
|
The SingleDecodeType type array to read. Value can be repeated. |
setChecksumValidation()
Enable checksum validation during recognition for 1D barcodes.
Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible.
Checksum never used: Codabar
Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5, Matrix2of5, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN
Checksum always used: Rest symbologies
Example
This sample shows influence of ChecksumValidation on recognition quality and results
let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128");
generator.save("test.png");
let reader = new BarCodeReader("test.png", null, DecodeType.EAN_13);
//checksum disabled
reader.setChecksumValidation(ChecksumValidation.OFF);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
console.log("BarCode Value: " + result.getExtended().getOneD().getValue());
console.log("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
});
let reader = new BarCodeReader("test.png", null, DecodeType.EAN_13);
//checksum enabled
reader.setChecksumValidation(ChecksumValidation.ON);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
console.log("BarCode Value: " + result.getExtended().getOneD().getValue());
console.log("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
});
The checksum validation flag.
setCustomerInformationInterpretingType()
Sets the Interpreting Type for the Customer Information of AustralianPost BarCode.Default is CustomerInformationInterpretingType.OTHER.
setDetectEncoding()
A flag which force engine to detect codetext encoding for Unicode codesets.
Example
//This sample shows how to detect text encoding on the fly if DetectEncoding is enabled
let image = "image.png";
let generator = new BarcodeGenerator(EncodeTypes.QR, "пїЅпїЅпїЅпїЅпїЅ");
generator.getParameters().getBarcode().getQR().setCodeTextEncoding("UTF-8");
generator.save(image, BarCodeImageFormat.getPng());
//detects encoding for Unicode codesets is enabled
let reader = new BarCodeReader(image, null, DecodeType.QR);
reader.setDetectEncoding(true);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
//detect encoding is disabled
let reader = new BarCodeReader(image, null, DecodeType.QR);
reader.setDetectEncoding(true);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
setQualitySettings()
QualitySettings allows to configure recognition quality and speed manually. You can quickly set up QualitySettings by embedded presets: HighPerformance, NormalQuality, HighQuality, MaxBarCodes or you can manually configure separate options. Default value of QualitySettings is NormalQuality.
Example
//This sample shows how to use QualitySettings with BarCodeReader
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
//set high performance mode
reader.setQualitySettings(QualitySettings.getHighPerformance());
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
//normal quality mode is set by default
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, [ DecodeType.CODE_39_STANDARD, DecodeType.CODE_128 ]);
//set high performance mode
reader.setQualitySettings(QualitySettings.getHighPerformance());
//set separate options
reader.getQualitySettings().setAllowMedianSmoothing(true);
reader.getQualitySettings().setMedianSmoothingWindowSize(5);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
QualitySettings to configure recognition quality and speed.
setStripFNC()
Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
Example
//This sample shows how to strip FNC characters
let generator = new BarcodeGenerator(EncodeTypes.GS1Code128, "(02)04006664241007(37)1(400)7019590754");
generator.save("test.png");
let reader = new BarCodeReader("test.png", null, DecodeType.CODE_128);
//StripFNC disabled
reader.setStripFNC(false);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
let reader = new BarCodeReader("test.png", null, DecodeType.CODE_128);
//StripFNC enabled
reader.setStripFNC(true);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
setTimeout(value)
Sets the timeout of recognition process in milliseconds.
Example
let reader = new BarCodeReader("test.png", null, null);
reader.setTimeout(5000);
reader.readBarCodes().forEach(function(result, i, results)
{
console.log("BarCode CodeText: " + result.getCodeText());
});
Parameter
Name | Type | Optional | Description |
---|---|---|---|
value |
|
|
The timeout. |