23

ペーパーレス ファイリング システムを実装したいと考えており、画像の取得に C# で WIA を使用することを検討していました。CodeProject などにはかなりのサンプル プロジェクトがあります。

それらのすべてで、WIALib への参照が壊れています。「Microsoft Windows Image Acquisition」を参照として追加すると、私の開発ワークステーション (これを実行するマシンでもあります) で利用できる唯一のバージョンは 2.0 です。

残念ながら、これらのサンプル プロジェクトはすべて 1.x に対してコーディングされているようです。参照は「WIALib」ではなく「WIA」として入ります。名前空間のインポートを変更するだけで撮影しましたが、明らかに API が大幅に異なります。

v2.0 の実装またはこれらの既存のサンプル プロジェクトの 1 つをアップグレードすることに関する情報はありますか?

4

5 に答える 5

22

WIA にアクセスするには、COM ライブラリ "Microsoft Windows Image Acquisition Library v2.0" (wiaaut.dll) への参照を追加する必要があります。「WIAを使用する」を追加します。

const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
CommonDialogClass wiaDiag = new CommonDialogClass();
WIA.ImageFile wiaImage = null;

wiaImage = wiaDiag.ShowAcquireImage(
        WiaDeviceType.UnspecifiedDeviceType, 
        WiaImageIntent.GrayscaleIntent, 
        WiaImageBias.MaximizeQuality, 
        wiaFormatJPEG, true, true, false);

WIA.Vector vector = wiaImage.FileData;

(System.Drawing)

Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(filename)

これは基本的な方法で、私のフラットベッド/ドキュメント フィーダーで動作します。ただし、一度に複数のドキュメント/ページが必要な場合は、おそらくより良い方法があります (私が見る限り、これは一度に 1 つの画像しか処理しませんが、完全にはわかりません)。これは WIA v1 のドキュメントですが、WIA に関する Scott Hanselman のCoding4Fun の記事には、複数のページでそれを行う方法に関する詳細情報が含まれていると思います (私自身はまだそれ以上のことは行っていません)。

ペーパーレス オフィス システムの場合は、MODI (Office Document Imaging) もチェックして、すべての OCR を実行することをお勧めします。

于 2008-09-20T11:28:57.827 に答える
1

アプリを Windows XP に出荷できるように、WIA 1.0 もターゲットにする方法を次に示します。必死に探していたもの!! Vista で WIA 1 を使用して開発するにはどうすればよいですか?

于 2010-07-23T18:13:56.853 に答える
1

更新:別の答え(1年後)であるため、これを個別に追加しています。XPにはWIA 1.0があり、Vista以降にはWIA2.0があることを知りました。ただし、ここから Windows XP Sp1+ 用の WIA 2.0 をインストールできます。

次に、インターウェブのどこかで見つけたコードで小さなライブラリも作成しました。これには、複数のページをスキャンする機能もあります: http://adfwia.codeplex.com/

于 2011-08-28T10:38:32.730 に答える
0

WIAである必要はありません。WIAのセットアップは、さまざまなスキャナーに同じ基本的なインターフェイスを提供するため、私は主にWIAのセットアップを検討していました。このマシンには3台のスキャナーがあり、それらすべてのTWAINドライバー/ソフトウェアは(スキャン中に画面をブロックするなど)ひどいものです。

ドキュメント管理については、単純な200dpiグレースケールスキャンを本当に探しているので、TWAINドライバーのほとんどのものはやり過ぎです。

とは言うものの、ここで質問することは、TWAINに移る前にWIAでそれを行う方法を理解するための私の最後の試みの一部でした。

于 2008-08-12T16:28:10.740 に答える
0

別の注意: Microsoft.com から WIA 2.0 dll をダウンロードし、dll を参照してプロジェクトに追加する必要があります。

于 2008-09-28T15:47:17.457 に答える