IWiaImageFilter-Schnittstelle
Die IWiaImageFilter-Schnittstelle ist eine Erweiterungsschnittstelle, die von Bildverarbeitungsfilterentwicklern 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 folgende Membertypen:
Methoden
Die IWiaImageFilter-Schnittstelle verfügt über diese Methoden.
Methode | BESCHREIBUNG |
---|---|
ApplyProperties | Ermöglicht dem Bildverarbeitungsfilter, 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 zum Weiterleiten von Aufrufen verwendet werden soll. |
Bemerkungen
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 bereit, die das ursprüngliche, ungefilterte Vorschaubild zwischenspeichert, das vom Scanner abgerufen wird. Eine Anwendung verwendet CoCreateInstance, um eine instance der WIA 2.0 Preview-Komponente (CLSID_WiaPreview) zu erstellen, die den Filter mithilfe von IWiaItem2::GetExtension lädt. Der Filter wird automatisch aufgerufen, wenn die Anwendung IWiaTransfer::D ownload aufruft.
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 vom Element durch Aufrufen von IWiaImageFilter::QueryInterface abruft. Der Filter kann dann eine IPropertyStorage-instance in diesem Stream instanziieren, um die Elementeigenschaften zu lesen. Der Bildverarbeitungsfilter drvReadItemProperties
sollte IWiaPropertyStorage::ReadMultiple nicht direkt aufrufen, da diese Methode in den Treiber aufruft, aber der WIA 2.0-Dienst hat den Treiber bereits im drvAcquireItemData
Aufruf gesperrt, sodass für diesen Aufruf ein Timeout auftritt und ein Fehler auftritt.
Die Eigenschaften, an denen der Filter interessiert ist, können z. B. die Einstellungen für Helligkeit und Kontrast sein. Der Filter muss in der Regel auch das Bildformat sowie die Vorschaueigenschaft (WIA_DPS_PREVIEW) aus 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, dieselben Ergebnisse zu erzielen, wie die Daten einmal zu filtern.
Der Filter muss auf die eigenschaft WIA_DPS_PREVIEW achten, insbesondere wenn einige filterbezogene Aufgaben in 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 endgültigen Überprüfung (wenn die Anwendung IWiaTransfer::D ownload aufruft) änderte der Treiber in der Regel die physische Lampe des Scanners. In diesem Fall muss der Bildverarbeitungsfilter möglicherweise gar keine Helligkeitsverarbeitung durchführen. Während eines Vorschauscans sollte der Treiber die Helligkeit der Lampe jedoch nicht ändern, sondern nur im Bildverarbeitungsfilter. Es ist wichtig, dass die WIA 2.0 Preview-Komponente und der Bildverarbeitungsfilter basierend auf den im Element festgelegten Eigenschaften genaue Bilder zurückgeben.
Ein Bildverarbeitungsfilter muss alle Vom Treiber unterstützten Bildformate unterstützen.
Der Bildverarbeitungsfilter erhält immer ein Bild, das dem Auswahlbereich entspricht, der in dem Element festgelegt ist, für das wir das Bild erfassen. 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::GetExtension erstellt, in der Regel nicht durch die Anwendung, sondern durch WIA 2.0-Komponenten, wenn eine Anwendung IWiaPreview::GetNewPreview oder IWiaTransfer::D ownload aufruft.
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 Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
IDL |
|