2011-07-18 15 views
0

まず、コミュニティにお挨拶したいと思います。私はこの場所の長いlurkerと鑑賞者でした。WPFでビデオフィードを描画する方法

ここまで私は、Aforgeライブラリを組み込んだパーソナルモーション検出プログラムに取り組んでおり、Andrew Kirillov氏のチュートリアル(http://www.codeproject.com/KB/audio-video/Motion_Detection.aspx?fid=177045&fr=26#xx0xx)をベースにしています。ところで、私はこの話題に興味を持っている人に強くお勧めします。今ポイントまで。このプロジェクトはwinformsを使用して構築されていますが、WPFを使用して独自のバージョン(ビット、ピース、追加)を再作成しています。 AndrewがOnPaint関数を使用するセクションがあり、wpfで描画を処理する方法については苦労しています。彼のコードはここにあります(小さな変更で可能)

もう少し詳しい情報を提供するため、m_Camera.LastFrameはビットマップです。

いくつかの調査を行った後、私は利用可能なオンレンダー機能があることを発見しましたが、効率のために誰もそれを気にしないようです。私はまた、イメージを確立し、ビットマップをソースとして割り当てられる可能性を考えましたが、それは私のためにはうまくいきません。アドバイスをいただければ幸いです。さらに情報やコードが必要な場合は、私に知らせてください。ありがとう!

ダニエル

答えて

0

あなたはWinformsのために示された正確な方法で描画するのDrawingVisualでWPFのレンダリングコンテキストを使用することができます。主な違いは、WPFではまだ即時モード描画ではないことです。すべてのレンダーコンテキスト描画は、ほかのすべてのWPF操作がスケジュールどおりに実行されているように記録されます。私の目的のためにはうまくいきましたが、あなたはビデオのパフォーマンスが良いとは思えません。

言及したように、ビットマップも割り当てることができます。なぜそれがあなたのために働いていないのか分かりません。おそらく更新を強制的に表示するためにいくつかのUpdateLayout呼び出しが必要ですか?

もう1つの方法は、WriteableBitmapを使用することですが、WPFに直接モード描画がないため、即時モード描画ではありません。私はアニメーションを含め、かなり良いパフォーマンスを得ています。

最後に、ビデオサーフェイス以外のすべてに対してWPFを使用し、Winformsホストを使用してビデオパネルをホストすることができます。ほとんどのWPF機能は、Winformsホストでうまく動作しますが、主な例外は飛行しています。

+0

迅速かつ全面的な返信をありがとう。私はそれに取り組み、最高の解決策が何であるかをみんなに知らせるでしょう。 – Daniel

関連する問題