私は現在、コントロールの1つが画像ストリームを表示するWPFアプリケーションを開発中です。ウェブカメラとよく似ています。これらのイメージはIPカメラから発信され、固定されたHTTP URLによってのみアクセスでき、常に同じ名前になります。画像をキャプチャしても問題ありません。IPcamの画像ストリームを表示
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = uri;
bitmapImage.CacheOption = BitmapCacheOption.None;
bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bitmapImage.EndInit();
return bitmapImage;
これは多く機能しています。この問題は、複数のカメラ(6以上)を接続しようとすると、アプリケーションが異常終了し、最終的にクラッシュする場合に発生します。すべてのカメラは別のスレッドbtwで実行されます。
私は基本的な問題を特定しました。最終的に約600画像/秒(約30Mb /秒)を処理するアプリケーションが必要なので、(高レベル?)ビットマップを作成するとリソースが多すぎます。
一言で言えば、私はこの検索/レンダリングプロセスをより効率的にする方法を模索しています。
ありがとうございます!
UPDATE:
は、.NET 4 WPFで作業Imは、カメラ自体は、イーサネットによってアクセス、MOBOTIXのM12であり、おそらく言及し忘れました。
私はMobotixを知っていて、またWPFの.Net 4に取り組んでいます。同様の問題があります。 – Nasenbaer
@Nasenbaer:あなたはそれらを解決することができましたか? – rumblefx0
私の場合は、カメラがフレームをストリームする間隔よりも短い間隔で画像を更新する独自のUIクラスを追加することで解決できます。内部的にImageSourceの場合はデフォルトのBitmapで作業していますので、メモリコンバータを使用しました。ガベージコレクタ 'GC.Collect'も見てください。あなたの場合、メモリは何ですか?私の場合、すべてが機能しています。しかし状況はあなたとは異なります。私はいくつかのMobotixカメラをテストしていません:-)あなたのコードを共有したいのであれば、あなたの問題をSVNまたはFTPで解決しようとすることができます。 – Nasenbaer