IWiaImageFilter-Schnittstelle
Die IWiaImageFilter-Schnittstelle ist eine Erweiterungsschnittstelle, die von Entwicklern von Bildverarbeitungsfiltern implementiert und von Windows Image Acquisition (WIA) 2.0 aufgerufen wird.
Member
Die IWiaImageFilter-Schnittstelle erbt von der IUnknown-Schnittstelle. IWiaImageFilter verfügt auch über diese Typen von Membern:
Methoden
Die IWiaImageFilter-Schnittstelle verfügt über diese Methoden.
| Methode | Beschreibung |
|---|---|
| ApplyProperties | Aktiviert den Filter für die Bildverarbeitung, um Eigenschaften zurück in den Treiber (und das Gerät) zu schreiben. |
| FilterPreviewImage | Filtert das Vorschaubild. |
| InitializeFilter | Initialisiert den Filter. Wird von WIA 2.0 vor jedem Imagedownload aufgerufen. |
| SetNewCallback | Legt einen neuen Anwendungsrückruf für den Bildverarbeitungsfilter fest, der für die Weiterleitung von Aufrufen verwendet werden soll. |
Hinweise
Entwickler von Bildverarbeitungsfiltern sollten diese Schnittstelle und die IWiaTransferCallback-Schnittstelle implementieren.
WIA 2.0 ruft Filtermethoden auf. Sie werden nie direkt aus einer Anwendung aufgerufen.
Microsoft stellt die WIA 2.0 Preview-Komponente zur Verfügung, die das ursprüngliche, ungefilterte Vorschaubild zwischenspeichert, das vom Scanner bezogen wird. Eine Anwendung verwendet CoCreateInstance, um eine Instanz der WIA 2.0-Vorschaukomponente (CLSID WiaPreview) zu erstellen, _ die den Filter mit IWiaItem2::GetExtensionlädt. Der Filter wird automatisch aufgerufen, wenn die Anwendung IWiaTransfer::D ownloadaufruft.
Der Bildverarbeitungsfilter wird immer ausgeführt, wenn ein Bild gescannt wird. Eine Anwendung kann kein Bild vom Scanner abrufen, ohne dass zuerst der Bildverarbeitungsfilter angewendet wird.
Ein Filter muss mindestens Helligkeit und Kontrast implementieren. Die allgemeine Benutzeroberfläche, die dem Benutzer Helligkeits- und Kontraststeuerelemente bereitstellt, kann dem Benutzer genaue Vorschauen anzeigen.
Ein Bildverarbeitungsfilter sollte niemals den lMessage-Member der WiaTransferParams-Struktur ändern.
Um die erforderlichen Eigenschaften zu lesen, sollte der Bildverarbeitungsfilter IWiaPropertyStorage::GetPropertyStream auf der IWiaPropertyStorage-Schnittstelle aufrufen, die er aus dem Element abruft, indem er IWiaImageFilter::QueryInterfaceaufruft. Der Filter kann dann eine IPropertyStorage-Instanz in diesem Stream instanziieren, um die Elementeigenschaften zu lesen. Der Bildverarbeitungsfilter sollte IWiaPropertyStorage::ReadMultiple nicht direkt aufrufen, da diese Methode den drvReadItemProperties aufruft, aber der WIA 2.0-Dienst den Treiber bereits im Aufruf gesperrt hat, drvAcquireItemData sodass bei diesem Aufruf ein Timeout auftritt und ein Fehler auftritt.
Die Eigenschaften, an denen der Filter interessiert ist, können z. B. die Helligkeits- und Kontrasteinstellungen sein. Der Filter muss in der Regel auch das Bildformat sowie die Vorschaueigenschaft WIA _ DPS _ PREVIEWaus pWiaItem2 lesen. Diese Eigenschaften werden alle im Filterprozess verwendet.
Die WIA 2.0-Komponenten schreiben immer ungefilterte Daten in den Bildverarbeitungsfilter. Der vom Datenstrom des Filters implementierte Bildverarbeitungsalgorithmus kann die Daten mehr als einmal filtern und muss sich nicht darum kümmern, die gleichen Ergebnisse wie das einmalige Filtern der Daten zu erzeugen.
Der Filter muss auf die WIA _ DPS _ PREVIEW-Eigenschaft achten, insbesondere wenn einige filterbezogene Aufgaben in der Hardware verarbeitet werden. Beispielsweise kann ein bestimmter Treiber die Helligkeit der Lampe in der Scannerhardware ändern, je nachdem, wie die Anwendung die Helligkeit in ein WIA 2.0-Element festgelegt hat. Während der letzten Überprüfung (wenn die Anwendung IWiaTransfer::D ownloadaufruft) ändert der Treiber in der Regel die physische Lampe des Scanners. In diesem Fall muss der Bildverarbeitungsfilter möglicherweise überhaupt keine Helligkeitsverarbeitung durchführen. Während einer Vorschauüberprüfung sollte der Treiber jedoch die Helligkeit der Lampe nicht ändern. Stattdessen sollte dies ausschließlich im Bildverarbeitungsfilter berücksichtigt werden. Es ist wichtig, dass die WIA 2.0-Vorschaukomponente und der Bildverarbeitungsfilter genaue Bilder basierend auf den eigenschaften zurückgeben, die im Element festgelegt sind.
Ein Bildverarbeitungsfilter muss alle Bildformate unterstützen, die der Treiber unterstützt.
Dem Bildverarbeitungsfilter wird immer ein Bild angezeigt, das dem Auswahlbereich entspricht, der in dem Element festgelegt ist, für das wir das Bild abrufen. Beachten Sie jedoch, dass das Bild möglicherweise vom Treiber gedreht wurde, falls es die WIA _ IPS _ ROTATION-Eigenschaft unterstützt.
Der Bildverarbeitungsfilter wird über IWiaItem2::GetExtensionerstellt, in der Regel nicht von der Anwendung, sondern von WIA 2.0-Komponenten, wenn eine Anwendung IWiaPreview::GetNewPreview oder IWiaTransfer::D ownloadaufruft.
Die IWiaImageFilter-Schnittstelle erbt wie alle com-Schnittstellen (Component Object Model) die IUnknown-Schnittstellenmethoden.
| IUnknown-Methoden | Beschreibung |
|---|---|
| IUnknown::QueryInterface | Gibt Zeiger auf unterstützte Schnittstellen zurück. |
| IUnknown::AddRef | Inkrementiert Verweiszähler. |
| IUnknown::Release | Dekrementiert Verweiszähler. |
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows [Nur Vista-Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows Nur Server [ 2008-Desktop-Apps] |
| Header |
|
| Idl |
|