HPDFScanBarcodeBitmap

Модуль: HPDFBarcodeRecognitionScan

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

Находит отдельные кандидаты-штрихкоды и декодирует их через переданный вызывающим single-symbol бэкенд; выходные координаты и четыре угла отсчитываются от исходного битмапа

Лимиты результата запроса, текста и сырых байтов действуют на все публикуемые символы; false возвращает пустой массив Symbols с диагностикой, а EHPDFOperationCancelled пробрасывается без публикации частичных результатов

Битмап не изменяется; размеры входа — не более 4096 на 4096 и не более 4 194 304 пикселей, а пустой или низкоконтрастный вход завершается успехом без символов

Для растров с длинными параллельными полосами сканер сначала пробует целое изображение, убирает подтверждённое покрытие символов из своих приватных группировочных тайлов и пробует грубые группы с более широкими quiet zones до более мелких фрагментов; у матричных кодов и прочих изображений остаётся сканирование от областей — сначала более крупные связные группы, затем более тесные фрагменты, чтобы целый повёрнутый символ не исчерпал лимит кандидатов раньше времени

Исходный дедлайн 2 000 мс действует на всём протяжении; более поздняя, более тесная группировка всё равно находит разделённые символы, если ранняя группа их объединила, а подтверждённое покрытие исключает лишние декодирования фрагментов

Нативная геометрия QR проверяет те же точные finder patterns перед выделением и выборкой полной сетки кандидатов, избегая лишней работы для недействительных комбинаций finder и сохраняя принятые модули и границы в исходных координатах

Сканирование нескольких штрихкодов в растре