共用方式為


IWiaPreview::UpdatePreview 方法

取得 IWiaPreview::GetNewPreview 方法所快取的未篩選映射。

語法

HRESULT UpdatePreview(
  [in] LONG      lOptions,
  [in] IWiaItem2 *pChildWiaItem
);

參數

lOptions [in]

類型: LONG

指定應用程式是否需要 WIA 2.0 預覽元件,才能將快取影像的子領域或整個快取的影像傳遞至影像處理篩選器。

WiaPreviewReturnOriginalImage

將整個快取的影像傳遞至影像處理篩選器。

pChildWiaItem [in]

類型: IWiaItem2*

指定IWiaItem2專案的指標,這是IWiaItem2專案的子系,由IWiaPreview::GetNewPreview方法的pWiaItem2參數所指定。 或者,如果應用程式需要整個平面的預覽,請指定IWiaPreview::GetNewPreview方法之 pWiaItem2參數的指標。 當 pChildWiaItemIWiaPreview::GetNewPreviewpWiaItem2 參數的子系時,此子專案通常是由分割篩選準則所建立。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

這個方法會透過影像處理篩選器傳遞快取、未篩選的影像,然後將篩選的資料寫入應用程式提供的資料流程。 WIA 2.0 預覽元件會藉由呼叫影像處理篩選器的 GetNextStream 方法擷取此資料流程,然後呼叫應用程式的 GetNextStream 實作。 呼叫 IWiaPreview::UpdatePreview之前,應用程式必須先呼叫 IWiaPreview::GetNewPreview ,才能從掃描器取得影像;否則,方法會傳回錯誤。

WIA 2.0 預覽元件會儲存從驅動程式下載的未篩選映射。 傳遞至 IWiaPreview::UpdatePreview 的 WIA 2.0 專案可能只代表從驅動程式下載的小型映射區域。 如果是這種情況,WIA 2.0 預覽元件實際上會先從快取的影像剪掉此區域,再將它傳遞至影像處理篩選,接著會將篩選的影像資料傳回應用程式。

若要讓應用程式將整個快取的影像傳遞至影像處理篩選 (接著將它傳遞至應用程式) ,它必須在呼叫IWiaPreview::UpdatePreview時,將lOptions設定為WiaPreviewReturnOriginalImage。 將lOptions設定為WiaPreviewReturnOriginalImage時,應用程式必須確定傳遞至IWiaPreview::UpdatePreview的專案範圍設定 (WIA_IPS_XEXTENT和WIA_IPS_YEXTENT) 與完整快取映射相符。 在此情況下,影像處理篩選不需要執行任何不同動作;它只會根據 pChildWiaIte (m 的屬性來篩選影像,通常在此案例中 為 pChildWiaItem 是傳遞至 IWiaPreview::GetNewPreview) 的相同專案。 系統會忽略不同的子領域,並使用相同的設定來篩選整個影像。 有幾種原因會導致應用程式執行這項操作。

  1. 應用程式可能不支援針對分割篩選偵測 (的每個區域個別變更 (設定,例如 WIA_IPS_BRIGHTNESSWIA_IPS_CONTRAST) ,或甚至不想使用分割篩選) 。 應用程式使用WiaPreviewReturnOriginalImage呼叫IWiaPreview::UpdatePreview會更容易,因此它一律會從 WIA 2.0 預覽元件接收完整映射。
  2. WIA 2.0 預覽元件不支援預覽影像的影像格式,在此情況下,無法執行動作來剪掉所需的區域。 WIA 2.0 預覽元件的影像格式支援僅限於 Windows GDI+ 1.1 編碼器和解碼器的格式。 這些格式是點陣圖 (BMP) (點陣圖,其中包含 BITMAPFILEHEADER) 、圖形交換格式 (GIF) 、JPEG、可攜式網狀圖形 (PNG) ,以及標記圖像檔案格式 (TIFF) 。

請注意,如果應用程式將 WiaPreviewReturnOriginalImage 傳遞至 IWiaPreview::UpdatePreview,WIA 2.0 預覽元件可以支援任何影像或像素格式。

IWiaPreview::UpdatePreview 會設定 WIA_DPS_PREVIEW 屬性 (,並在傳回之前重設屬性,除非在) 之前設定屬性。 這可讓驅動程式 (和硬體) 以及影像處理篩選器,知道該專案是預覽掃描。

應用程式必須確定pChildWiaItem的影像格式 (WIA_IPA_FORMAT) 和解析度 (WIA_IPS_XRES和WIA_IPS_YRES) ,如同pWiaItem 傳遞IWiaPreview::GetNewPreview時一樣。 子專案的格式必須對應至 WIA 2.0 預覽元件的快取影像格式, (WIA 2.0 預覽元件不會執行任何影像轉換) 。

範例

每次使用者變更時,都應該呼叫 UpdateRegion,例如, 所 dwRegionNumber 表示子專案的亮度或對比。 此子專案先前已由分割篩選 (IWiaSegmentationFilter建立。 寫入 IStream 的影像會由傳輸回呼介面的 GetNextStream 方法傳回。 在此範例中會省略 GetSubRegionItem 的程式碼。

呼叫此函式之後,應用程式通常會重新繪製螢幕上的區域。

HRESULT
UpdateRegion(
   IN  DWORD dwRegionNumber)
{
   IWiaItem2 *pSubRegion = GetSubRegionItem(dwRegionNumber);

   return m_pWiaPreview->UpdatePreview(0,pSubRegion);
}

規格需求

需求
最低支援的用戶端
Windows Vista [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2008 [僅限傳統型應用程式]
標頭
Wia.h
Idl
Wia.idl