HPDFSampleDataMatrixQuadrilateral
Unit: HPDFDataMatrixGeometry
function HPDFSampleDataMatrixQuadrilateral(const Mask: TBytes;
Width, Height, Rows, Columns, RegionRows, RegionColumns: Integer;
const Corners: THPDFBarcodeQuadrilateral;
CancellationToken: THPDFCancellationToken; StartTick: Cardinal;
out Grid: THPDFBarcodeModuleGrid): Boolean;
Sampelt ein ECC-200-Data-Matrix-Quadrilateral mit Finder-Border-Validierung, bevor Datenmodule gesampelt werden; erfolgreiche Ausgabe entspricht der Fünf-Sample-Mehrheitsregel von HPDFSampleBarcodeQuadrilateral
Mask enthält ein Byte pro Rasterpixel, wobei nonzero-Bytes dunkle Pixel darstellen; Width und Height beschreiben jenes Raster, Rows und Columns beschreiben das vollständige Modulraster einschließlich Finder-Borders, und RegionRows und RegionColumns zählen die Datenregionen vertikal und horizontal
Region-Anzahlen müssen positiv sein und ihre entsprechenden Moduldimensionen teilen; jede Region muss mindestens drei Module breit und hoch sein, Moduldimensionen reichen von 8 bis 144, Rasterdimensionen sind höchstens 4096 mal 4096, und höchstens 4.194.304 Rasterpixel werden akzeptiert
Corners folgt der normalisierten top-left-, top-right-, bottom-right-, bottom-left-Reihenfolge des Kandidatensymbols, einschließlich seiner beabsichtigten Orientierung und Spiegelung; der Sampler prüft die soliden linken und unteren Borders sowie die alternierenden oberen und rechten Borders jeder Region
Die zulässige Anzahl falscher Finder-Module ist Max(1, BorderModuleCount div 50), passend zur bestehenden ECC-200-Finder-Prüfung des Decoders; ein zurückgewiesenes Finder-Muster oder ungültiger Input liefert false mit leerem Grid, und erfolgreiches Sampling etabliert weder eine dekodierte Payload noch gültige Reed–Solomon-Codewörter
StartTick ist der Windows-GetTickCount-Wert vom Beginn der vollständigen Operation; die bestehende 2000-ms-Deadline umfasst Finder- und Daten-Sampling, und Abbruch propagiert als EHPDFOperationCancelled
Die generische Funktion HPDFSampleBarcodeQuadrilateral sampelt weiterhin beliebige Modulraster, ohne ECC-200-Finder-Semantik aufzuerlegen