次の方法で共有


IWiaImageFilter インターフェイス

IWiaImageFilter インターフェイスは、画像処理フィルター開発者によって実装され、Windows Image Acquisition (WIA) 2.0 によって呼び出される拡張インターフェイスです。

メンバー

IWiaImageFilter インターフェイスは、IUnknown インターフェイスから継承します。 IWiaImageFilter には、次の種類のメンバーもあります。

メソッド

IWiaImageFilter インターフェイスには、これらのメソッドがあります。

メソッド 説明
ApplyProperties イメージ処理フィルターでプロパティをドライバー (およびデバイス) に書き戻します。
FilterPreviewImage プレビュー イメージをフィルター処理します。
InitializeFilter フィルターを初期化します。 各イメージのダウンロード前に WIA 2.0 によって呼び出されます。
SetNewCallback 呼び出しの転送に使用する画像処理フィルターの新しいアプリケーション コールバックを設定します。

 

注釈

画像処理フィルター開発者は、このインターフェイスと IWiaTransferCallback インターフェイスを 実装する必要があります。

WIA 2.0 はフィルター メソッドを呼び出します。 アプリケーションから直接呼び出されることはありません。

Microsoft は WIA 2.0 Preview コンポーネントを提供します。このコンポーネントは、スキャナーから取得された、フィルター処理されていない元のプレビュー イメージをキャッシュします。 アプリケーションは CoCreateInstance を使用して WIA 2.0 プレビュー コンポーネント (CLSID_WiaPreview) のインスタンスを共同作成し、 IWiaItem2::GetExtension を使用してフィルターを読み込みます。 フィルターは、アプリケーションが IWiaTransfer::D ownload を呼び出すと自動的に呼び出されます。

画像処理フィルターは、画像がスキャンされるときに常に実行されます。 アプリケーションは、最初にイメージング フィルターを適用しないと、スキャナーからイメージを取得できません。

フィルターは、少なくとも明るさとコントラストを実装する必要があります。 ユーザーに明るさとコントラストのコントロールを提供する一般的な UI では、ユーザーに正確なプレビューを表示できます。

画像処理フィルターは、WiaTransferParams 構造体の lMessage メンバーを変更しないでください。

必要なプロパティを読み取るには、IWiaImageFilter::QueryInterface を呼び出してアイテムから取得する IWiaPropertyStorage インターフェイスの IWiaPropertyStorage::GetPropertyStream を呼び出す必要があります。 フィルターは、このストリームで IPropertyStorage インスタンスをインスタンス化して、項目のプロパティを読み取ることができます。 このメソッドはドライバーの を呼び出しますが、WIA 2.0 サービスが呼drvReadItemPropertiesび出しでdrvAcquireItemDataドライバーを既にロックしているため、この呼び出しがタイムアウトして失敗するため、画像処理フィルターは IWiaPropertyStorage::ReadMultiple を直接呼び出さないでください。

フィルターの対象となるプロパティは、明るさやコントラストの設定などです。 通常、フィルターでは、pWiaItem2 からイメージ形式とプレビュー プロパティ WIA_DPS_PREVIEWを読み取る必要もあります。 これらのプロパティはすべて、フィルター処理プロセスで使用されます。

WIA 2.0 コンポーネントは、常にフィルター処理されていないデータを画像処理フィルターに書き込みます。 フィルターのストリームによって実装される画像処理アルゴリズムは、データを複数回フィルター処理でき、データを 1 回フィルター処理するのと同じ結果を生成することに関係する必要はありません。

フィルターは、特に一部のフィルター関連タスクがハードウェアで処理される場合に、 WIA_DPS_PREVIEW プロパティに注意を払う必要があります。 たとえば、特定のドライバーは、アプリケーションが WIA 2.0 項目に明るさを設定する方法に応じて、スキャナー ハードウェアのランプの明るさを変更できます。 最終的なスキャン中 (アプリケーションが IWiaTransfer::D ownload を呼び出すとき)、ドライバーは通常、スキャナーの物理ランプを変更します。 この場合、画像処理フィルタは明るさ処理を全く行う必要がない場合がある。 ただし、プレビュー スキャン中は、ドライバーはランプの明るさを変更しないでください。代わりに、これは画像処理フィルターでのみ処理する必要があります。 WIA 2.0 プレビュー コンポーネントと画像処理フィルターは、アイテムに設定されたプロパティに基づいて正確な画像を返す必要があります。

画像処理フィルターは、ドライバーがサポートするすべてのイメージ形式をサポートする必要があります。

画像処理フィルタには、常に画像を取得する項目に設定された選択領域に対応する画像が与えられる。 ただし、 WIA_IPS_ROTATION プロパティをサポートしている場合に備えて、ドライバーによってイメージが回転されている可能性があることに注意してください。

画像処理フィルターは、アプリケーションが IWiaPreview::GetNewPreview または IWiaTransfer::D ownload を呼び出すときに、通常はアプリケーションではなく WIA 2.0 コンポーネントによって IWiaItem2::GetExtension を使用して作成されます。

IWiaImageFilter インターフェイスは、すべてのコンポーネント オブジェクト モデル (COM) インターフェイスと同様に、IUnknown インターフェイス メソッドを継承します。

IUnknown の各種メソッド 説明
IUnknown::QueryInterface サポートされるインターフェイスへのポインターを返します。
IUnknown::AddRef 参照カウントをインクリメントします。
IUnknown::Release 参照カウントをデクリメントします。

 

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
Header
Wia.h
IDL
Wia.idl