カメラは画像をキャプチャしてフォルダ(.bmpファイル)に保存します。同時に、アプリケーションはフォルダから画像ファイルを1つずつ取得して処理する必要があります私たちがFileSystemWatcherを使用すると、問題が発生する可能性があります(イメージの処理前にディレクトリを選択しているため、更新されたイメージは処理されません)。実行時にフォルダ?ビットマップファイルをフォルダから動的に処理するC#
答えて
については
あなたはFileSystemWatcherを使用することができますが、いくつかの癖を認識する必要があります。ウォッチャーは、ファイルが最初に作成され、変更されたイベントがファイルに書き込まれるときに作成済みイベントを発生させます。カメラがファイルへの書き込みを停止したときを知ることができないため、Closeイベントはありません。 限り、ファイルが書き込み用に開かれているとして、あなたは処理し、それを読むためにあらゆる試みのためにそれを読むことができません例外
を発生させますあなたがこれを扱うことができるいくつかの方法があります。
-
は、
- すべてのイベントをリストに記録し、リスト内のすべてのファイルを定期的に処理することができます。ファイルを開くことに失敗した場合は、ファイルをリストに残して、次の処理ラウンドで処理してください。
- ファイルを読み込もうとするまでに、カメラが書き込みを終了することを期待して、ファイルの読み込みを遅延させることができます。引き続き例外が発生した場合は、しばらく待ってから再試行してください。
- 作成されたイベントや変更されたイベントを追跡することができます。特定のタイムアウト後にファイルに対してイベントが受信されない場合にのみファイルをオープンしようとします。
ポーリングとタイムアウトは、タイマーを使用して実装できます。
ポーリングで導入された遅延が気に入らない場合は、別のスレッドを使用してイベントのリストを待機し、新しいイベントが表示されたときに処理できます。あなたはC#4のBlockingCollectionの機能を比較的単純な方法で使うことができます。
一つの解決策は、新しいファイルがフォルダに置かれたときに通知を受け取るためにFileSystemWatcher
を使用することです。その後、プロセスファイル(複数可)。
Fiを提供して取得するにはあなたが使用できるフォルダ内のすべてのBMPファイルのファイル名:
string[] fileNames = Directory.GetFiles("<path>", "*.bmp");
次に、ビットマップを通常どおりロードできます。
使用FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
任意の画像の開発はC#で画像をロードする方法を知っておく必要があります。
FROMFILE
画像ファイルを読み込み、ビットマップまたはイメージのいずれかにロードするには、2つの直接的な方法があります。 C#のコードを見よ:
Image myImg = Image.FromFile("path here");
Bitmap myBmp = Bitmap.FromFile("path here");
はまたBitmapオブジェクトもをロードすることができます。
Bitmap myBmp = new Bitmap("path here");
それはFROMFILEに固執するのがベストですので、上記のコードは、しかしImageオブジェクトでは動作しません。
ダイアログボックス
最後に、ファイルからイメージをロードするアプリケーションを作成するために、あなたのC#のプログラムは、ファイルを選択するためのダイアログボックスを必要とします。 .Net OpenFileDialogの使用は簡単です。ただ、ユーザーが選択したファイル名に画像ローディングコードを適用するので、例えば:
もちろんBitmap loadedBitmap = Bitmap.FromFile(openFileDialog1.Filename);
、あなたは必ずしもこのようにファイルから画像をロードする必要はありませんが、それはあります有用なことを知っている。詳しくはHERE
- 1. UITableViewCell - Nibsから動的サイズのコンテンツビューを処理する方法
- 2. ファイルを関連フォルダに移動するDOSバッチ処理
- 3. 管理対象コード内のアンマネージDLLからビットマップファイルをロード
- 4. jQuery動的チェックボックスイベント処理
- 5. UIScrollView:動的コンテンツの処理?
- 6. C#自動例外処理
- 7. HttpGetは自動的にクッキーを処理しますか?
- 8. 実行時にDjangoで動的フィールドを処理する方法
- 9. 動的に生成されたフォームを処理するPHP
- 10. ベンダープレフィックスを自動的に処理するCSSフレームワーク?
- 11. Haxeの動的オブジェクトを反復処理するには
- 12. 動的に生成された要素Zend_Formを処理する
- 13. サブメニュー項目をアンドロイドで動的に処理する
- 14. Zend CSRFハッシュコードチェックは自動的に処理されますか?
- 15. 目的C:サーバからフォルダの内容を取得する
- 16. C#クエリでの突発的な処理
- 17. WPFパスからビットマップファイルへの変換
- 18. c#sql何を処理するか
- 19. jQuery UI - >動的コンテンツの処理?
- 20. JavaScript動的イベント処理、未jqueryの
- 21. どのようにsqueelでwhere条件を動的に処理するのですか?この入力から
- 22. ユーザーが管理する友好的なURLはGoogleによって自動的に処理されますか?
- 23. 自動的に処理するのgzip HTTP応答
- 24. C#のステートメントを使用してオブジェクトを自動的に処理する別の構文はありますか?
- 25. フォルダからpgpファイルを解読して移動する - c#
- 26. C:ドライブから.AndroidStudio1.5フォルダを移動する
- 27. 動的コンテンツのブラウザの戻るボタンを処理する方法
- 28. iPhoneアプリ、動的コンテンツで戻るボタンを処理する方法
- 29. C#でトランザクションを処理する一般的な方法
- 30. C#YAML処理
キャプチャした画像は、FileSystemWatcherを使用すると動的にフォルダが更新されますので、問題が発生する可能性があります(画像を処理する前にディレクトリを選択していますので、更新された画像は処理されません) –
'FileSystemWatcher'は、ファイルの作成だけでなく、ファイルの更新も扱うことができます。また、ディレクトリの内容をリストし、各ファイルの最後の書き込み時間を保存することもできます。新しいファイルまたは新しい変更タイムスタンプ。 –