まず、コミュニティに挨拶したいと思います。私はこの場所の長い間潜んでいて、感謝しています。
今のところ、私はAforgeライブラリを組み込んだ個人の動き検出プログラムに取り組んでおり、ここにあるAndrew Kirillovのチュートリアル(http://www.codeproject.com/KB/audio-video/Motion_Detection.aspx? )に強く基づいています。 fid = 177045&fr = 26#xx0xx。ちなみに、このトピックに興味のある人には強くお勧めします。ここで要点を説明します。このプロジェクトはwinformsを使用して構築されており、WPFを使用して独自のバージョン(ビット、ピース、および追加)を再作成していますが、問題が発生しました。AndrewがOnPaint関数を利用するセクションがあり、私はwpfでの描画の処理方法に苦労しています。これが彼のコードです(マイナーな変更が必要です)
// Paint control
protected override void OnPaint(PaintEventArgs pe)
{
// lock
Monitor.Enter(this);
var g = pe.Graphics;
var rc = ClientRectangle;
var pen = new Pen(m_RectColor, 1);
// draw rectangle
g.DrawRectangle(pen, rc.X, rc.Y, rc.Width - 1, rc.Height - 1);
if (m_Camera != null)
{
try
{
m_Camera.Lock();
// draw frame
g.DrawImage(m_Camera.LastFrame, rc.X + 1, rc.Y + 1, rc.Width - 2, rc.Height - 2);
}
catch (Exception) { }
finally
{
m_Camera.Unlock();
}
}
pen.Dispose();
// unlock
Monitor.Exit(this);
base.OnPaint(pe);
}
もう少し洞察を提供するために、m_Camera.LastFrameはビットマップです。
調べてみると、レンダリング機能が利用できることがわかりましたが、効率の良さからあまり気にしないようです。また、イメージの確立とビットマップのソースとしての割り当ての可能性についても検討しましたが、それはうまくいきません。何かアドバイスをいただければ幸いです。また、より多くの情報/コードが必要な場合は、私に知らせてください。ありがとう!
ダニエル