구분 필터에 대한 구현 정보
세분화 필터가 만드는 각 자식 항목에 설정하는 속성을 유의해야 합니다. 이러한 속성은 WIA_IPS_XPOS, WIA_IPS_YPOS, WIA_IPS_XEXTENT, WIA_IPS_YEXTENT, WIA_IPS_DESKEW_X 및 WIA_IPS_DESKEW_Y. 이러한 속성 값은 pInputStream 매개 변수에 전달된 이미지가 아니라 플랫베드에서 항목의 위치에 해당합니다.
따라서 구분 필터는 전달된 이미지의 WIA_IPS_XPOS, WIA_IPS_YPOS 및 WIA_IPS_ROTATION 속성에 주의해야 합니다.
예를 들어 애플리케이션이 미리 보기 이미지를 가져오기 전에 WIA_IPS_XPOS = WIA_IPS_YPOS = 200을 (부모) 항목으로 설정하는 미리 보기 검사를 수행한다고 가정합니다. 그런 다음, 분할 필터를 호출하여 가능한 하위 리소스를 검색합니다. 그러나 세분화 필터에 사용되는 실제 알고리즘은 전달되는 이미지에서 작동합니다. 이 알고리즘이 이미지의 왼쪽 가장자리 오른쪽에서 150픽셀, 이미지 위쪽에서 200픽셀 아래로 하위 영역 모서리를 검색하는 경우 이는 실제로 스캐너의 (350, 400)에 있는 지점에 해당합니다.
다음 그림에서 외부 영역은 스캐너 평면을 나타냅니다. 알고리즘은 영역의 왼쪽 위 모서리 좌표를 (150, 200)로 찾을 수 있지만 분할 필터가 WIA_IPS_XPOS 및 WIA_IPS_YPOS 자식 항목으로 설정해야 하는 값은 350 및 400입니다.
예를 들어 애플리케이션이 세분화 필터에서 감지한 영역을 시각적으로 표시하는 경우 구분 필터는 플랫베드에서 해당 위치에 해당하는 좌표를 설정한다는 점에 유의해야 합니다. 즉, 애플리케이션은 미리 보기 이미지의 좌표에 플랫베드 좌표를 매핑해야 합니다. 그러나 대부분의 경우 애플리케이션은 WIA_IPS_XPOS = WIA_IPS_YPOS = 0 및 회전 없음(WIA_IPS_ROTATION = PORTRAIT)을 사용하여 미리 보기 검사를 수행합니다. 이 경우 플랫베드에 있는 좌표와 미리 보기 이미지의 좌표 간에 직접 매핑이 있습니다.
세분화 필터가 주의해야 하는 또 다른 속성은 드라이버가 이 속성을 구현할 수 있도록 하는 회전 속성인 WIA_IPS_ROTATION. 예를 들어 미리 보기 이미지를 가져올 때 애플리케이션 집합이 ROT180으로 WIA_IPS_ROTATION 가정합니다. 이 경우 세분화 필터로 전달된 이미지의 왼쪽 위 모서리는 실제로 플랫베드에서 오른쪽 아래 모서리에 해당합니다. 따라서 세분화 필터는 회전된 이미지에서 감지하는 각 하위 집합의 좌표를 플랫베드에 있는 좌표에 매핑해야 합니다. 구분 필터가 이 매핑을 수행하면 WIA_IPS_XPOS, WIA_IPS_YPOS 및 기타 속성 값을 하위 이미지에 해당하는 자식 항목으로 설정할 수 있습니다.
대부분의 경우 WIA_IPS_XPOS 및 WIA_IPS_YPOS 0으로 설정되고 WIA_IPS_ROTATION PORTRAIT로 설정됩니다. 그러나 구분은 이러한 값으로 설정되지 않은 경우를 처리할 수 있어야 합니다.
또한 애플리케이션은 드라이버에 의해 회전된 구분 필터에 이미지를 전달할 수 있지만 이미 수행된 deskewing이 수행된 이미지를 전달해서는 안 됩니다.