HPDFScanBarcodeBitmap

Unit: HPDFBarcodeRecognitionScan

function HPDFScanBarcodeBitmap(const Request: THPDFBarcodeDecodeRequest;
  const SingleSymbolDecoder: IHPDFBarcodeDecoder;
  const Options: THPDFBarcodeScanOptions; out Symbols: THPDFBarcodeScanSymbols;
  out Info: THPDFBarcodeScanInfo; out Diagnostic: AnsiString): Boolean;

Locate separated barcode candidates and decode them through the caller-supplied single-symbol backend; output coordinates and four corners refer to the original bitmap

Request result, text and raw-byte limits apply across all published symbols; false returns an empty Symbols array with a diagnostic, and EHPDFOperationCancelled propagates without publishing partial results

The bitmap is preserved; input dimensions are at most 4096 by 4096 with at most 4,194,304 pixels, and blank or low-contrast input succeeds with no symbols

For rasters with long parallel bars, the scanner tries the complete image first, removes verified symbol coverage from its private grouping tiles, and tries coarse groups with wider quiet zones before smaller fragments; matrix-code and other artwork retain region-first scanning, trying larger connected groups before tighter fragments so a complete rotated symbol does not exhaust the candidate allowance first

The original 2,000 ms deadline applies throughout; later tighter grouping still finds separated symbols when an earlier group combines them, and verified coverage prevents redundant fragment decodes

Native QR geometry checks the same exact finder patterns before allocating and sampling the full candidate grid, avoiding redundant work for invalid finder combinations while preserving accepted modules and source-coordinate bounds

Multi-symbol raster barcode scanning