Condividi tramite


Metodo IWiaPreview::UpdatePreview

Ottiene l'immagine non filtrata memorizzata nella cache dal metodo IWiaPreview::GetNewPreview .

Sintassi

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

Parametri

lOptions [in]

Tipo: LONG

Specifica se l'applicazione richiede al componente di anteprima WIA 2.0 di passare un'area secondaria dell'immagine memorizzata nella cache o l'intera immagine memorizzata nella cache al filtro di elaborazione delle immagini.

WiaPreviewReturnOriginalImage

Passare l'intera immagine memorizzata nella cache al filtro di elaborazione delle immagini.

pChildWiaItem [in]

Tipo: IWiaItem2*

Specifica un puntatore all'elemento IWiaItem2 , figlio dell'elemento IWiaItem2 specificato dal parametro pWiaItem2 del metodo IWiaPreview::GetNewPreview . In alternativa, se l'applicazione richiede un'anteprima dell'intero piano, specifica un puntatore al parametro pWiaItem2 del metodo IWiaPreview::GetNewPreview . Quando pChildWiaItem è un elemento figlio del parametro PWiaPreview::GetNewPreviewpWiaItem2 , questo elemento figlio viene in genere creato dal filtro di segmentazione.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Questo metodo passa l'immagine memorizzata nella cache, non filtrata tramite il filtro di elaborazione delle immagini, che scrive quindi i dati filtrati nel flusso fornito dall'applicazione. Il componente WIA 2.0 Preview recupera questo flusso chiamando il metodo GetNextStream del filtro di elaborazione delle immagini, che chiama quindi l'implementazione GetNextStream dell'applicazione. Prima di chiamare IWiaPreview::UpdatePreview, un'applicazione deve prima chiamare IWiaPreview::GetNewPreview per acquisire l'immagine dallo scanner; in caso contrario, il metodo restituisce un errore.

Il componente di anteprima WIA 2.0 archivia l'immagine non filtrata scaricata dal driver. È possibile che l'elemento WIA 2.0 passato a IWiaPreview::UpdatePreview rappresenta solo una piccola area dell'immagine scaricata dal driver. Se si tratta del caso del componente di anteprima WIA 2.0 taglia effettivamente questa area dall'immagine memorizzata nella cache prima di passarla al filtro di elaborazione delle immagini, che a sua volta passa i dati dell'immagine filtrati all'applicazione.

Per consentire a un'applicazione di passare l'intera immagine memorizzata nella cache al filtro di elaborazione delle immagini (che a sua volta lo passa all'applicazione), deve impostare lOptions su WiaPreviewReturnOriginalImage quando si chiama IWiaPreview::UpdatePreview. Quando si imposta lOptions su WiaPreviewReturnOriginalImage, l'applicazione deve assicurarsi che le impostazioni di estensione (WIA_IPS_XEXTENT e WIA_IPS_YEXTENT) dell'elemento passato in IWiaPreview::UpdatePreview corrisponda all'immagine memorizzata nella cache completa. Il filtro di elaborazione delle immagini non deve fare nulla di diverso in questo caso; filtra semplicemente l'immagine, in base alle proprietà di pChildWiaItem (in genere in questo caso pChildWiaItem è lo stesso elemento passato a IWiaPreview::GetNewPreview). Le diverse aree secondarie vengono ignorate e l'intera immagine viene filtrata usando le stesse impostazioni. Ci sono alcuni motivi per cui un'applicazione farebbe questa operazione.

  1. L'applicazione potrebbe non supportare la modifica delle impostazioni (ad esempio WIA_IPS_BRIGHTNESS e WIA_IPS_CONTRAST) singolarmente per ogni area rilevata dal filtro di segmentazione (o potrebbe non voler usare il filtro di segmentazione). È più semplice per l'applicazione chiamare IWiaPreview::UpdatePreview con WiaPreviewReturnOriginalImage in modo che riceva sempre l'immagine completa dal componente di anteprima WIA 2.0.
  2. Il componente di anteprima WIA 2.0 non supporta il formato immagine dell'immagine di anteprima, nel qual caso non può eseguire le azioni per tagliare l'area desiderata. Il supporto del formato immagine del componente di anteprima WIA 2.0 è limitato ai formati per i quali sono presenti codificatori e decodificatori Windows GDI+ 1.1. Questi formati sono bitmap (BMP) (una bitmap che include bitmapFILEHEADER), Formato di interscambio grafico (GIF), JPEG, Grafica di rete portabile (PNG) e Formato file immagine contrassegnato (TIFF).

Si noti che se l'applicazione passa WiaPreviewReturnOriginalImage in IWiaPreview::UpdatePreview, il componente di anteprima WIA 2.0 può supportare qualsiasi formato di immagine o pixel.

IWiaPreview::UpdatePreview imposta la proprietà WIA_DPS_PREVIEW (e la reimposta prima del ritorno, a meno che non sia stata impostata prima). In questo modo, il driver (e l'hardware) e il filtro di elaborazione delle immagini, sanno che l'elemento è un'analisi di anteprima.

Un'applicazione deve assicurarsi che pChildWiaItem abbia lo stesso formato immagine (WIA_IPA_FORMAT) e risoluzione (WIA_IPS_XRESeWIA_IPS_YRES) di pWiaItem quando è stato passato a IWiaPreview::GetNewPreview. Il formato dell'elemento figlio deve corrispondere al formato dell'immagine memorizzata nella cache del componente WIA 2.0 Preview (il componente di anteprima WIA 2.0 non esegue alcuna conversione di immagini).

Esempio

UpdateRegion deve essere chiamato ogni volta che un utente cambia, ad esempio la luminosità o il contrasto per l'elemento figlio rappresentato da dwRegionNumber. Questo elemento figlio è stato creato in precedenza dal filtro di segmentazione (IWiaSegmentationFilter). L'immagine scritta in IStream viene restituita dal metodo GetNextStream dell'interfaccia di callback di trasferimento. Il codice per GetSubRegionItem viene omesso in questo esempio.

Dopo aver chiamato questa funzione, un'applicazione in genere ridisegnerebbe l'area sullo schermo.

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

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Wia.h
IDL
Wia.idl