Leitura multi-símbolo de códigos de barras raster
HPDFCreateBuiltInBarcodeDecoder lê múltiplos símbolos separados no mesmo raster, incluindo símbolos lineares mistos, QR Code, Data Matrix ECC 200 e PDF417 suportados pelos descodificadores nativos
A sobrecarga existente de DecodeLoadedPageBarcodes usa automaticamente este scanner e retém os bounds de píxeis de cada resultado antes de a pipeline de páginas os mapear para coordenadas PDF
Os resultados são ordenados pela posição de topo e depois pela posição esquerda, e deteções duplicadas são fundidas apenas quando a simbologia, o texto, os bytes em bruto e a posição sobreposta concordam; payloads idênticos em posições separadas permanecem resultados separados
Helper nativo e geometria
HPDFBarcodeRecognitionScan exporta HPDFScanBarcodeBitmap para quem precise do array mais rico THPDFBarcodeScanSymbols e das estatísticas THPDFBarcodeScanInfo
Passe um THPDFBarcodeDecodeRequest, um HPDFCreateBuiltInSingleBarcodeDecoder e um THPDFBarcodeScanOptions.Default; a fábrica de símbolo único também preserva o acesso direto ao descodificador original para seleção de regiões específica da aplicação
HPDFCreateScanningBarcodeDecoder envolve um IHPDFBarcodeDecoder de símbolo único fornecido com a mesma varredura de regiões, supressão de duplicados e orçamentos agregados, para aplicações que só precisam da interface ordinária de descodificadores
Cada THPDFBarcodeScanSymbol contém o registo ordinário Barcode, quatro Corners do raster, HasPerspectiveGeometry e um Diagnostic por símbolo
A geometria do Data Matrix deriva um convex hull dos extremos das linhas de primeiro plano, recupera quatro linhas de borda, intersecta linhas adjacentes e resolve uma homografia de oito parâmetros para amostrar os centros de módulos com uma votação de maioria de cinco pontos
O descodificador tenta tamanhos quadrados e retangulares standard suportados de ECC 200, rotações e espelhamentos, e depois verifica bordas de localização e blocos Reed-Solomon antes de devolver texto ou bytes em bruto; rotação e projeção trapezoidal podem combinar-se com danos corrigíveis em módulos de dados
Para geometria de Data Matrix verificada, OrientationDegrees mede a borda de topo canónica no sentido horário a partir do eixo x positivo do raster, enquanto Corners segue o hull detetado no sentido horário com um canto inicial não especificado
HPDFDataMatrixGeometry exporta HPDFLocateDataMatrixQuadrilateral e HPDFSampleBarcodeQuadrilateral, e HPDFDataMatrixDecoder exporta HPDFDecodeDataMatrixQuadrilateral para aplicações que já conhecem os quatro cantos projetados
Os valores de confiança descrevem o caminho de verificação do descodificador, e não uma probabilidade estatística calibrada; resultados ECC 200 amostrados projetivamente reportam atualmente 0.90 após verificação bem-sucedida de bordas e de correção de erros
Para outras simbologias nativas, os cantos do helper descrevem os bounds alinhados aos eixos devolvidos e HasPerspectiveGeometry é false; os valores existentes de confiança e de orientação delas são retidos
Orçamentos e publicação atómica
O scanner usa binarização de Otsu e tiles de ocupação de quatro píxeis, e depois liga regiões de primeiro plano da matriz a partir da maior de três distâncias delimitadas de vizinhança, em direção a distâncias menores; isto tenta um símbolo completo rodado antes de fragmentos desligados, mantendo retries mais apertados para símbolos separados e o fallback de raster completo para escalas invulgares ou trabalhos gráficos ligados
Regiões cujos tiles de primeiro plano já estão cobertos por resultados verificados são ignoradas antes da descodificação, e os píxeis e o formato de píxeis do bitmap fonte de quem chama são preservados
Os limites por defeito são 256 descodificações de candidatos, 67,108,864 píxeis de candidatos totais, 268,435,456 bytes de trabalho estimados e um prazo de dois segundos por pedido; os tetos originais de entrada de 4096 por 4096 e de 4,194,304 píxeis permanecem impostos
MaxResults, MaxTextCodeUnits e MaxRawBytes no pedido aplicam-se ao conjunto agregado de resultados publicados, incluindo payloads repetidos em localizações diferentes
THPDFBarcodeScanInfo reporta a contagem de candidatos tentados, os píxeis descodificados cumulativos, os candidatos rejeitados e os resultados duplicados sobrepostos
O cancelamento propaga-se como EHPDFOperationCancelled; orçamentos esgotados ou erros de descodificadores devolvem false com um diagnóstico, e todas as falhas deixam o array de símbolos vazio mesmo depois de candidatos anteriores terem sido descodificados com sucesso
Entrada em branco ou uniformemente de baixo contraste termina com sucesso com um array vazio, e trabalhos gráficos de alto contraste não suportados não devolvem símbolo adivinhado nenhum
Âmbito de reconhecimento
A varredura de matrizes tenta grupos ligados maiores antes de fragmentos mais apertados, preservando retries de símbolos separados e o prazo original; a geometria nativa de QR valida finder patterns exatos antes de alocar e amostrar a grelha de candidatos completa
Múltiplos símbolos precisam de separação visível suficiente do fundo para o agrupamento de regiões; símbolos que se tocam, símbolos sobrepostos, trabalhos gráficos densos envolventes, bordas de localização gravemente danificadas, módulos projetados minúsculos e perspetiva extrema podem impedir a localização
DMRE, superfícies curvas, recuperação de reflexos fotográficos e simbologias adicionais além do conjunto existente de descodificadores nativos continuam fora deste perfil
Fixtures independentes cobrem uma colagem de seis símbolos com payloads QR repetidos, imagens Data Matrix rodadas e trapezoidais, ECC 200 retangular e perspetiva combinada com danos corrigíveis em módulos de dados
Veja OCR e reconhecimento de códigos de barras incorporados para os modos de payload suportados e a descodificação de códigos de barras em páginas carregadas para o mapeamento de coordenadas de páginas para rasters