共用方式為


分割篩選的實作注意事項

請務必注意分割篩選準則設定為它所建立的每個子專案的屬性。 這些屬性包括: WIA_IPS_XPOSWIA_IPS_YPOSWIA_IPS_XEXTENT、WIA_IPS_YEXTENT,以及可能 WIA_IPS_DESKEW_XWIA_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,前提是驅動程式會實作這個屬性。 假設取得預覽影像時,應用程式會將WIA_IPS_ROTATION設為 ROT180。 在此情況下,傳遞至分割篩選的影像左上角實際上會對應到平面上右下角。 因此,分割篩選準則必須對應其偵測到旋轉影像中每一個子系的座標,使其在平面上應該是哪些座標。 分割篩選執行此對應之後,就可以將WIA_IPS_XPOS、WIA_IPS_YPOS和其他屬性值設定為對應至子映射的子專案。

請注意,在大部分情況下,WIA_IPS_XPOS和WIA_IPS_YPOS會設定為零,而WIA_IPS_ROTATION會設定為 PORTRAIT。 不過,分割應該能夠處理它們未設定為這些值的案例。

另請注意,雖然應用程式可以將影像傳入驅動程式已旋轉的分割篩選,但不能傳入已經執行桌面的影像。