Partager via


Méthode IWiaPreview::UpdatePreview

Obtient l’image non filtrée mise en cache par la méthode IWiaPreview::GetNewPreview .

Syntaxe

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

Paramètres

lOptions [in]

Type : LONG

Spécifie si l’application nécessite le composant WIA 2.0 Preview pour passer une sous-région de l’image mise en cache ou l’ensemble de l’image mise en cache au filtre de traitement de l’image.

WiaPreviewReturnOriginalImage

Passez l’ensemble de l’image mise en cache au filtre de traitement d’image.

pChildWiaItem [in]

Type : IWiaItem2*

Spécifie un pointeur vers l’élément IWiaItem2 , qui est un enfant de l’élément IWiaItem2 spécifié par le paramètre pWiaItem2 de la méthode IWiaPreview::GetNewPreview . Ou, si l’application nécessite un aperçu de l’ensemble du plat, spécifie un pointeur vers le paramètre pWiaItem2 de la méthode IWiaPreview::GetNewPreview . Lorsque pChildWiaItem est un enfant du paramètre pWiaPreview::GetNewPreview2, cet élément enfant est généralement créé par le filtre de segmentation.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, il retourne un code d’erreur HRESULT .

Notes

Cette méthode transmet l’image mise en cache et non filtrée via le filtre de traitement d’image, qui écrit ensuite les données filtrées dans le flux fourni par l’application. Le composant WIA 2.0 Preview récupère ce flux en appelant la méthode GetNextStream du filtre de traitement d’images, qui appelle ensuite l’implémentation GetNextStream du rappel de l’application. Avant d’appeler IWiaPreview::UpdatePreview, une application doit d’abord appeler IWiaPreview::GetNewPreview pour acquérir l’image à partir du scanneur ; sinon, la méthode retourne une erreur.

Le composant WIA 2.0 Preview stocke l’image non filtrée téléchargée à partir du pilote. Il est possible que l’élément WIA 2.0 passé dans IWiaPreview::UpdatePreview ne représente qu’une petite région de l’image téléchargée à partir du pilote. Si tel est le cas, le composant WIA 2.0 Preview supprime cette région de l’image mise en cache avant de la passer au filtre de traitement de l’image, qui à son tour transmet les données d’image filtrées à l’application.

Pour qu’une application passe l’intégralité de l’image mise en cache au filtre de traitement d’image (qui à son tour la transmet à l’application), elle doit définir lOptions sur WiaPreviewReturnOriginalImage lors de l’appel de IWiaPreview::UpdatePreview. Lors de la définition de lOptions sur WiaPreviewReturnOriginalImage, l’application doit s’assurer que les paramètres d’étendue (WIA_IPS_XEXTENT et WIA_IPS_YEXTENT) de l’élément transmis à IWiaPreview::UpdatePreview correspondent à l’image en cache complète. Le filtre de traitement d’image n’a pas besoin de faire quoi que ce soit de différent dans ce cas ; il filtre simplement l’image, en fonction des propriétés de pChildWiaItem (généralement dans ce cas , pChildWiaItem est le même élément qui a été passé à IWiaPreview::GetNewPreview). Les différentes sous-régions sont ignorées et l’image entière est filtrée à l’aide des mêmes paramètres. Il existe plusieurs raisons pour lesquelles une application le ferait.

  1. L’application peut ne pas prendre en charge la modification des paramètres (comme WIA_IPS_BRIGHTNESS et WIA_IPS_CONTRAST) individuellement pour chaque région détectée par le filtre de segmentation (ou elle peut même ne pas vouloir utiliser le filtre de segmentation). Il est plus facile pour l’application d’appeler IWiaPreview::UpdatePreview avec WiaPreviewReturnOriginalImage afin qu’elle reçoive toujours l’image complète du composant WIA 2.0 Preview.
  2. Le composant WIA 2.0 Preview ne prend pas en charge le format d’image de l’image d’aperçu, auquel cas il ne peut pas effectuer les actions permettant de découper la région souhaitée. La prise en charge des formats d’image du composant WIA 2.0 Preview est limitée aux formats pour lesquels il existe des encodeurs et des décodeurs Windows GDI+ 1.1. Ces formats sont bitmap (BMP) (bitmap qui inclut bitmapFILEHEADER), Graphics Interchange Format (GIF), JPEG, Png (Portable Network Graphics) et TIFF (Tagged Image File Format).

Notez que si l’application transmet WiaPreviewReturnOriginalImage dans IWiaPreview::UpdatePreview, le composant WIA 2.0 Preview peut prendre en charge n’importe quel format d’image ou de pixel.

IWiaPreview::UpdatePreview définit la propriété WIA_DPS_PREVIEW (et la réinitialise avant qu’elle ne soit retournée, sauf si elle a été définie avant). Cela permet au pilote (et au matériel) ainsi qu’au filtre de traitement d’image de savoir que l’élément est une analyse en préversion.

Une application doit s’assurer que pChildWiaItem a le même format d’image (WIA_IPA_FORMAT) et la même résolution (WIA_IPS_XRES et WIA_IPS_YRES) que pWiaItem quand il a été passé dans IWiaPreview::GetNewPreview. Le format de l’élément enfant doit correspondre au format de l’image mise en cache du composant WIA 2.0 Preview (le composant WIA 2.0 Preview n’effectue aucune conversion d’image).

Exemples

UpdateRegion doit être appelé chaque fois qu’un utilisateur change, par exemple, la luminosité ou le contraste de l’élément enfant représenté par dwRegionNumber. Cet élément enfant a déjà été créé par le filtre de segmentation (IWiaSegmentationFilter. L’image écrite dans IStream est retournée par la méthode GetNextStream de l’interface de rappel de transfert. Le code de GetSubRegionItem est omis dans cet exemple.

Une fois cette fonction appelée, une application redessine généralement la région à l’écran.

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

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Wia.h
IDL
Wia.idl