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는 래스터 픽셀당 바이트 하나를 담고 0이 아닌 바이트가 어두운 픽셀입니다. 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 파인더 의미론을 부과하지 않고 임의 모듈 그리드를 계속 샘플링합니다

다중 심볼 래스터 바코드 스캐닝