HPDFSampleDataMatrixQuadrilateral

ユニット: HPDFDataMatrixGeometry

function HPDFSampleDataMatrixQuadrilateral(const Mask: TBytes;
  Width, Height, Rows, Columns, RegionRows, RegionColumns: Integer;
  const Corners: THPDFBarcodeQuadrilateral;
  CancellationToken: THPDFCancellationToken; StartTick: Cardinal;
  out Grid: THPDFBarcodeModuleGrid): Boolean;

データモジュールのサンプリング前にファインダー枠検証を行い、ECC 200 Data Matrix の四辺形をサンプリングします。成功した出力は、HPDFSampleBarcodeQuadrilateral が使う 5 サンプル多数決規則と一致します

Mask はラスターのピクセルごとに 1 バイトを含み、非ゼロのバイトが暗いピクセルを表します。Width と Height がそのラスターを表し、Rows と Columns はファインダー枠を含む完全なモジュールグリッドを表し、RegionRows と RegionColumns はデータ領域を縦と横に数えます

領域数は正で、対応するモジュール寸法を割り切れなければなりません。各領域は幅と高さが 3 モジュール以上、モジュール寸法は 8 から 144 の範囲、ラスター寸法は最大 4096 × 4096、受け付けられるラスターは最大 4,194,304 ピクセルです

Corners は候補シンボルの、左上・右上・右下・左下の正規化順序に従います。意図された向きと反転を含みます。サンプラーは、各領域のソリッドな左と下の枠、交互パターンの上と右の枠を確認します

許容される不正ファインダーモジュール数は Max(1, BorderModuleCount div 50) で、デコーダーの既存 ECC 200 ファインダーチェックと一致します。拒否されたファインダーパターンや無効な入力は、空の Grid とともに false を返します。サンプリングが成功しても、デコード済みペイロードや有効な Reed–Solomon 符号語が確定するわけではありません

StartTick は、操作全体の開始時点からの Windows GetTickCount 値です。既存の 2,000 ms デッドラインにはファインダーとデータのサンプリングが含まれ、キャンセルは EHPDFOperationCancelled として伝播します

汎用の HPDFSampleBarcodeQuadrilateral 関数は、ECC 200 ファインダーセマンティクスを課さずに、任意のモジュールグリッドのサンプリングを引き続き行います

マルチシンボルラスターバーコード走査