BARCODEREADOPT
typedef struct tagBarCodeReadOpt
{
L_UINT32 ulSearchType;
L_INT nUnits;
L_UINT32 ulFlags;
L_INT nMultipleMax;
RECT rcSearch;
L_BOOL bUseRgn;
BARCODECOLOR BarColor;
} BARCODEREADOPT, L_FAR * pBARCODEREADOPT;
This structure contains barcode read options that control the reading process.
Member |
Description |
|
ulSearchType |
Type of barcode for which to search. You can combine values when appropriate among the same group values, by using a bitwise OR ( | ). Possible values are: |
|
Value |
Meaning | |
Linear Barcode: |
| |
BARCODE_1D_EAN_13 |
[0x00000001] To read EAN 13 type. | |
BARCODE_1D_EAN_8 |
[0x00000002] To read EAN 8 type. | |
BARCODE_1D_UPC_A |
[0x00000004] To read UPC version A type. | |
BARCODE_1D_UPC_E |
[0x00000008] To read UPC version E type. | |
BARCODE_1D_CODE_3_OF_9 |
[0x00000010] To read Code 3 of 9 (Code 39) type. | |
BARCODE_1D_CODE_128 |
[0x00000020] To read Code 128 type. | |
BARCODE_1D_CODE_I2_OF_5 |
[0x00000040] To read Interleaved 2 of 5 type. | |
BARCODE_1D_CODA_BAR |
[0x00000080] To read CODABAR type. | |
BARCODE_1D_UCCEAN_128 |
[0x00000100] To read UCCEAND 128 type | |
BARCODE_1D_CODE_93 |
[0x00000200] To read Code 93 type | |
BARCODE_1D_READ_ANYTYPE |
[0x00000FF0] To enable searching of all linear barcode types. | |
PDF Barcodes: |
| |
BARCODE_PDF417 |
[0x00002000] To read PDF417 type. | |
Data Matrix Barcode: |
| |
BARCODE_DM_READ_SQUARE |
[0x00010000] To read square Data Matrix symbols. | |
BARCODE_DM_READ_RECTANGLE |
[0x00020000] To read rectangular Data Matrix symbols. | |
BARCODE_DM_READ_SMALL |
[0x00040000] To read small Data Matrix symbols. | |
|
QR Barcodes: |
|
|
BARCODE_QR_CODE |
[0x00100000] To read QR barcodes. |
nUnits |
Unit of measure. Possible values are: |
|
Value |
Meaning | |
BARCODE_SCANLINES_PER_PIXELS |
[0] the rectangle search area is measured in pixels. | |
BARCODE_INCHES |
[1] the rectangle search area is measured in inches. You must multiply the search area by 100. (i.e. to specify 1 inch set this to 100) | |
BARCODE_MILLIMETERS |
[2] the rectangle search area is measured in mm. | |
ulFlags |
Processing options. You can combine values when appropriate, by using a bitwise OR ( | ). The following values are used only when you want to search for linear barcodes. Pass 0 to get the default. Possible values are: |
|
Value |
Meaning | |
BARCODE_MARKERS |
[0x0001] Enables the reading of barcodes that have start and end markers. | |
BARCODE_BLOCK_SEARCH |
[0x0002] Search for barcodes by moving up or down through the rectangle until the first character is read or there is no barcode found. | |
BARCODE_USECOLORS |
[0x0200] Enable searching for color barcodes. The colors are used as the exact bar and space colors for searching for the barcode. | |
BARCODE_RETURNCHECK |
[0x1000] When setting this bit, then the check character will return in all cases, whether BARCODE1D.bErrorCheck is enabled or not. | |
BARCODE_RETURNCORRUPT |
[0x0080] Enables the engine to return the area that an un-readable PDF417 symbol was located. | |
BARCODE_DM_FORCE_INVERT |
[0x00000800] Forces the Data Matrix read to search for reversed color symbols even if non-inverted color symbols were found. | |
BARCODE_DM_FASTFIND_DISABLE |
[0x00001000] Disables fast find feature when reading Data Matrix symbols. Fast find is automatically disabled when reading small symbols. | |
BARCODE_RETURN_FOUR_POINTS |
[0x00002000] Enables return of four corners and not bounding rectangle. | |
BARCODE_PDF_READ_MODE_0 |
[0x0000] Basic Channel Mode :No transmission of symbology ID, No escape doubling, Macro PDF is illegal.ECI is illegal, Reserved code words are illegal. | |
BARCODE_PDF_READ_MODE_1 |
[0x1000] Extended Channel Mode.Transmit] L1 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted. Reserved code words are transmitted. | |
BARCODE_PDF_READ_MODE_2 |
[0x2000] Basic Channel Mode. Transmit ] L2 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. | |
BARCODE_PDF_READ_MODE_3_BASIC |
[0x3000] Basic Channel Mode. Transmit ] L0 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. | |
BARCODE_PDF_READ_MODE_3_EXTENDED |
[0x7000] Extended Channel Mode. Transmit ] L0 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted in GLI format. Reserved code words transmitted. | |
BARCODE_PDF_READ_MACRO_OPTION_0 |
[0x00010000] Enable the return of the optional macro ‘File Name’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_1 |
[0x00020000] Enable the return of the optional macro ‘Segment Count’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_2 |
[0x00040000] Enable the return of the optional macro ‘Time Stamp’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_3 |
[0x00080000] Enable the return of the optional macro ‘Sender’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_4 |
[0x00100000] Enable the return of the optional macro ‘Addressee’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_5 |
[0x00200000] Enable the return of the optional macro ‘File Size’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_6 |
[0x00400000] Enable the return of the optional macro ‘Checksum’ field. | |
BARCODE_PDF_READ_MACRO_OPTION_79AZ |
[0x00800000] Enable the return of all optional macro fields 7 to 9 and A to Z. | |
BARCODE_PDF_READ_RETURN_PARTIAL |
[0x01000000] Returns PDF417 data even if ECC does not succeed. | |
nMultipleMax |
Specifies the maximum number of barcodes to search. Pass 0 to read all barcodes in a specified search area. |
|
rcSearch |
Rectangle that contains the search area for the barcodes. |
bUseRgn |
Flag that indicates whether to use the region when searching. Possible values are: |
|
Value |
Meaning | |
TRUE |
If the bitmap has a region, the LBarCode::Read function will only search the region for barcodes. If the bitmap does not have a region, the LBarCode::Read function will search the entire bitmap for barcodes. | |
FALSE |
The LBarCode::Read will use the location and size parameters in rcSearch to determine what area of the bitmap to search for barcodes. | |
BarColor |
BarCodeColor structure, which contains the bars and space colors to search for barcodes. |
Comments
pBARCODEREADOPT is a pointer to an BARCODEREADOPT structure. Where a function parameter type is pBARCODEREADOPT, you can declare a BARCODEREADOPT variable and pass the variable's address in the parameter. Declaring a pBARCODEREADOPT variable is necessary only if your program requires a pointer.
When the BARCODE_USECOLORS flag is set, then this function will use the BarColor member, otherwise the LBarCode::Read function will ignore it and use the default colors of black for bars and white for spaces are used.
Using colors does not apply for 1 bit per pixel images.
The BARCODE_USECOLORS is used with all barcode kinds.
The BARCODE_RETURNCHECK flag used only with reading linear barcodes.
The smallest Data Matrix symbol size is 40 pixels by 40 pixels. It can be read using BARCODE_DM_READ_SMALL since this enables the reading of Data Matrix symbols that are between 20 to 40 pixels in size.
When the ulFlags member value is set to BARCODE_RETURN_FOUR_POINTS flag, the BARCODEDATA.rcBarLocation member will be updated with the four-point corner encoded values.
Before using the four-point corner encoded values, they must be decoded.
The following example shows how to decode the four-point corner values:
POINT
p1, p2, p3, p4;
int nStartX = BarCodeData.rcBarLocation.left;
int nStartY = BarCodeData.rcBarLocation.top;
int nWidth =
BarCodeData.rcBarLocation.right - nStartX;
int nHeight = BarCodeData.rcBarLocation.bottom - nStartY;
p1.x = (nStartX & 0xffff);
p1.y = (nStartX >> 16);
p2.x = (nStartY & 0xffff);
p2.y = (nStartY >> 16);
p3.x = (nWidth & 0xffff);
p3.y = (nWidth >> 16);
p4.x = (nHeight & 0xffff);
p4.y = (nHeight >> 16);