Interface IWiaImageFilter
L’interface IWiaImageFilter est une interface d’extension implémentée par les développeurs de filtres de traitement d’images et appelée par Windows Image Acquisition (WIA) 2.0.
Membres
L’interface IWiaImageFilter hérite de l’interface IUnknown. IWiaImageFilter a également les types de membres suivants :
Méthodes
L’interface IWiaImageFilter possède ces méthodes.
Méthode | Description |
---|---|
ApplyProperties | Active le filtre de traitement d’image pour écrire des propriétés dans le pilote (et l’appareil). |
FilterPreviewImage | Filtre l’image d’aperçu. |
InitializeFilter | Initialise le filtre. Appelé par WIA 2.0 avant chaque téléchargement d’image. |
SetNewCallback | Définit un nouveau rappel d’application pour le filtre de traitement d’images à utiliser pour le transfert d’appels. |
Notes
Les développeurs de filtre de traitement d’images doivent implémenter cette interface et l’interface IWiaTransferCallback .
WIA 2.0 appelle des méthodes de filtre. Ils ne sont jamais appelés directement à partir d’une application.
Microsoft fournit le composant WIA 2.0 Preview, qui met en cache l’image d’aperçu non filtrée d’origine acquise à partir du scanneur. Une application utilise CoCreateInstance pour co-créer un instance du composant WIA 2.0 Preview (CLSID_WiaPreview), qui charge le filtre à l’aide d’IWiaItem2::GetExtension. Le filtre est appelé automatiquement lorsque l’application appelle IWiaTransfer::D ownload.
Le filtre de traitement d’image est toujours exécuté lorsqu’une image est analysée. Une application ne peut pas acquérir une image à partir du scanneur sans que le filtre d’imagerie soit appliqué en premier.
Un filtre doit implémenter la luminosité et le contraste au minimum. L’interface utilisateur commune, qui fournit des contrôles de luminosité et de contraste à l’utilisateur, peut afficher des aperçus précis pour l’utilisateur.
Un filtre de traitement d’image ne doit jamais modifier le membre lMessage de la structure WiaTransferParams .
Pour lire les propriétés requises, le filtre de traitement d’images doit appeler IWiaPropertyStorage::GetPropertyStream sur l’interface IWiaPropertyStorage qu’il obtient à partir de l’élément en appelant IWiaImageFilter::QueryInterface. Le filtre peut ensuite instancier un instance IPropertyStorage sur ce flux pour lire les propriétés des éléments. Le filtre de traitement d’image drvReadItemProperties
ne doit pas appeler IWiaPropertyStorage::ReadMultiple directement, car cette méthode appelle dans le pilote , mais le service WIA 2.0 a déjà verrouillé le pilote dans l’appeldrvAcquireItemData
, de sorte que cet appel expire et échoue.
Les propriétés qui intéressent le filtre peuvent par exemple être les paramètres de luminosité et de contraste. Le filtre doit généralement également lire le format d’image ainsi que la propriété d’aperçu, WIA_DPS_PREVIEW, de pWiaItem2. Ces propriétés sont toutes utilisées dans le processus de filtrage.
Les composants WIA 2.0 écrivent toujours des données non filtrées dans le filtre de traitement d’image. L’algorithme de traitement d’images implémenté par le flux du filtre peut filtrer les données plusieurs fois et n’a pas à se soucier de produire les mêmes résultats que de filtrer les données une seule fois.
Le filtre doit faire attention à la propriété WIA_DPS_PREVIEW , en particulier si certaines tâches liées au filtre sont gérées dans le matériel. Par exemple, un certain pilote peut modifier la luminosité de la lampe dans le matériel du scanneur en fonction de la façon dont l’application a défini la luminosité dans un élément WIA 2.0. Lors de l’analyse finale (lorsque l’application appelle IWiaTransfer::D ownload), le pilote modifie généralement la lampe physique du scanneur. Dans ce cas, le filtre de traitement d’image n’a peut-être pas besoin d’effectuer un traitement de luminosité. Au cours d’une analyse d’aperçu, toutefois, le pilote ne doit pas modifier la luminosité de la lampe, mais cela doit être pris en charge uniquement dans le filtre de traitement de l’image. Il est important que le composant d’aperçu WIA 2.0 et le filtre de traitement des images retournent des images précises en fonction des propriétés définies dans l’élément.
Un filtre de traitement d’image doit prendre en charge tous les formats d’image pris en charge par le pilote.
Le filtre de traitement d’image reçoit toujours une image correspondant à la zone de sélection définie dans l’élément pour lequel nous acquérons l’image. Notez toutefois que l’image a peut-être été pivotée par le pilote dans le cas où elle prend en charge la propriété WIA_IPS_ROTATION .
Le filtre de traitement des images est créé via IWiaItem2::GetExtension, généralement pas par l’application, mais par les composants WIA 2.0 lorsqu’une application appelle IWiaPreview::GetNewPreview ou IWiaTransfer::D ownload.
L’interface IWiaImageFilter, comme toutes les interfaces COM (Component Object Model), hérite des méthodes d’interface IUnknown.
Méthodes IUnknown | Description |
---|---|
IUnknown::QueryInterface | Retourne des pointeurs aux interfaces prises en charge. |
IUnknown::AddRef | Incrémente le décompte de références. |
IUnknown::Release | Décrémente le décompte de références. |
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 |
|
IDL |
|