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參數的指標。 當 pChildWiaItem 是 IWiaPreview::GetNewPreview的 pWiaItem2 參數的子系時,此子專案通常是由分割篩選準則所建立。
傳回值
類型: 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) 的相同專案。 系統會忽略不同的子領域,並使用相同的設定來篩選整個影像。 有幾種原因會導致應用程式執行這項操作。
- 應用程式可能不支援針對分割篩選偵測 (的每個區域個別變更 (設定,例如 WIA_IPS_BRIGHTNESS 和 WIA_IPS_CONTRAST) ,或甚至不想使用分割篩選) 。 應用程式使用WiaPreviewReturnOriginalImage呼叫IWiaPreview::UpdatePreview會更容易,因此它一律會從 WIA 2.0 預覽元件接收完整映射。
- 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 [僅限傳統型應用程式] |
標頭 |
|
Idl |
|