Multi-Symbol-Barcode-Scanning im Raster

HPDFCreateBuiltInBarcodeDecoder scannt mehrere getrennte Symbole im selben Raster, darunter gemischte lineare, QR-Code-, Data-Matrix-ECC-200- und PDF417-Symbole, die von den nativen Decodern unterstützt werden

Die bestehende DecodeLoadedPageBarcodes-Überladung nutzt diesen Scanner automatisch und behält die Pixel-Bounds jedes Ergebnisses, bevor die Page-Pipeline sie auf PDF-Koordinaten abbildet

Ergebnisse werden nach oberer und dann nach linker Position sortiert; Dubletten werden nur zusammengeführt, wenn Symbologie, Text, Raw-Bytes und überlappende Position übereinstimmen — identische Payloads an getrennten Positionen bleiben eigene Ergebnisse

Native Helper und Geometrie

HPDFBarcodeRecognitionScan exportiert HPDFScanBarcodeBitmap für Aufrufer, die das reichhaltigere THPDFBarcodeScanSymbols-Array und THPDFBarcodeScanInfo-Statistiken benötigen

Übergib THPDFBarcodeDecodeRequest, HPDFCreateBuiltInSingleBarcodeDecoder und THPDFBarcodeScanOptions.Default; die Single-Symbol-Factory erhält zusätzlich den direkten Zugriff auf den ursprünglichen Decoder für anwendungsspezifische Regionsauswahl

HPDFCreateScanningBarcodeDecoder wrapt einen übergebenen Single-Symbol-IHPDFBarcodeDecoder mit demselben Region-Scanning, derselben Dublettenunterdrückung und denselben Sammel-Budgets — für Anwendungen, die nur das gewöhnliche Decoder-Interface brauchen

Jedes THPDFBarcodeScanSymbol enthält den gewöhnlichen Barcode-Record, vier Raster-Corners, HasPerspectiveGeometry und ein symbolbezogenes Diagnostic

Die Data-Matrix-Geometrie leitet aus den Vordergrund-Zeilenextrema eine konvexe Hülle ab, rekonstruiert vier Kantenlinien, schneidet benachbarte Linien und löst eine Homographie mit acht Parametern, um Modulzentren per Mehrheitsentscheid über fünf Punkte abzutasten

Der Decoder probiert unterstützte quadratische und standardmäßige rechteckige ECC-200-Größen, Rotationen und Spiegelungen durch und verifiziert Finder-Ränder und Reed-Solomon-Blöcke, bevor er Text oder Raw-Bytes zurückgibt; Rotation und trapezförmige Projektion lassen sich mit korrigierbaren Datenmodul-Beschädigungen kombinieren

Bei verifizierter Data-Matrix-Geometrie misst OrientationDegrees die kanonische Oberkante im Uhrzeigersinn von der positiven x-Achse des Rasters aus, während Corners die erkannte Hülle im Uhrzeigersinn mit unbestimmter Startecke durchlaufen

HPDFDataMatrixGeometry exportiert HPDFLocateDataMatrixQuadrilateral und HPDFSampleBarcodeQuadrilateral, HPDFDataMatrixDecoder exportiert HPDFDecodeDataMatrixQuadrilateral — für Anwendungen, die die vier projizierten Ecken bereits kennen

Die Confidence-Werte beschreiben den Verifikationsweg des Decoders, keine kalibrierte statistische Wahrscheinlichkeit; projektiv abgetastete ECC-200-Ergebnisse melden derzeit 0.90 nach erfolgreicher Rand- und Fehlerkorrektur-Verifikation

Bei anderen nativen Symbologien beschreiben die Helper-Ecken die zurückgegebenen achsenparallelen Bounds, und HasPerspectiveGeometry ist false; die vorhandenen Confidence- und Orientierungswerte bleiben erhalten

Budgets und atomare Veröffentlichung

Der Scanner nutzt Otsu-Binarisierung und Vier-Pixel-Occupancy-Tiles und verbindet dann Matrix-Vordergrundregionen von der größten von drei begrenzten Nachbarschaftsdistanzen Richtung kleinerer Distanzen; dabei versucht er zuerst ein vollständiges gedrehtes Symbol statt getrennter Fragmente, behält aber engere Wiederholungsversuche für separierte Symbole und den Full-Raster-Fallback für ungewöhnliche Skalierung oder zusammenhängende Grafiken bei

Regionen, deren Vordergrund-Tiles bereits von verifizierten Ergebnissen abgedeckt sind, werden vor dem Decoding übersprungen, und die Pixel sowie das Pixelformat der Quell-Bitmap des Aufrufers bleiben unverändert

Standardgrenzen sind 256 Kandidaten-Decodes, 67,108,864 Kandidaten-Pixel insgesamt, 268,435,456 geschätzte Arbeitsbytes und eine Zwei-Sekunden-Deadline pro Anforderung; die ursprünglichen Grenzen von 4096 mal 4096 und 4,194,304 Eingabepixeln bleiben bestehen

MaxResults, MaxTextCodeUnits und MaxRawBytes in der Anforderung gelten für den gesamten veröffentlichten Ergebnissatz, einschließlich wiederholter Payloads an unterschiedlichen Positionen

THPDFBarcodeScanInfo meldet die Anzahl versuchter Kandidaten, kumulative decodierte Pixel, abgelehnte Kandidaten und überlappende Dubletten-Ergebnisse

Abbruch propagiert als EHPDFOperationCancelled; erschöpfte Budgets oder Decoderfehler liefern false mit einer Diagnose, und alle Fehler lassen das Symbol-Array leer, auch nachdem frühere Kandidaten erfolgreich decodiert wurden

Leere oder gleichmäßig kontrastarme Eingaben schließen erfolgreich mit leerem Array ab, und nicht unterstützte kontrastreiche Grafiken liefern kein geratenes Symbol

Erkennungsumfang

Das Matrix-Scanning versucht größere zusammenhängende Gruppen vor engeren Fragmenten und behält Wiederholungsversuche für separierte Symbole sowie die ursprüngliche Deadline bei; die native QR-Geometrie validiert exakte Finder-Muster, bevor das vollständige Kandidatenraster allokiert und abgetastet wird

Mehrere Symbole brauchen genug sichtbaren Hintergrundabstand für das Region-Grouping; berührende Symbole, überlappende Symbole, dichte umgebende Grafik, schwer beschädigte Locator-Ränder, winzige projizierte Module und extreme Perspektive können die Lokalisierung verhindern

DMRE, gekrümmte Oberflächen, photographische Reflexions-Korrektur und weitere Symbologien über den bestehenden nativen Decoder-Satz hinaus bleiben außerhalb dieses Profils

Eigenständige Fixtures decken eine Sechs-Symbol-Collage mit wiederholten QR-Payloads ab, dazu gedrehte und trapezförmige Data-Matrix-Bilder, rechteckiges ECC 200 sowie kombinierte Perspektive mit korrigierbaren Datenmodul-Beschädigungen

Siehe Built-in OCR und Barcode-Erkennung für die unterstützten Payload-Modi und Barcode-Decoding geladener Seiten für das Mapping von Seiten- zu Rasterkoordinaten