Get Webcam stream using Aforge.NET in C# and WPF

不问归期 提交于 2019-12-03 12:18:23

Edit1: for a detailed explanation view my blogpost on the same topic.


I fixed the error using the Dispatcher class as a mutex:

void Cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {

        System.Drawing.Image imgforms = (Bitmap)eventArgs.Frame.Clone(); 

        BitmapImage bi = new BitmapImage(); 
        bi.BeginInit(); 

        MemoryStream ms = new MemoryStream(); 
        imgforms.Save(ms, ImageFormat.Bmp); 
        ms.Seek(0, SeekOrigin.Begin); 

        bi.StreamSource = ms; 
        bi.EndInit();

        //Using the freeze function to avoid cross thread operations 
        bi.Freeze();

        //Calling the UI thread using the Dispatcher to update the 'Image' WPF control         
        Dispatcher.BeginInvoke(new ThreadStart(delegate
        {
            frameholder.Source = bi; /*frameholder is the name of the 'Image' WPF control*/
        }));     

    }

Now it runs as expected and I get good performance without any drop in the fps.

If you want to support Silverlight, be it for web or standalone or WP7, you shouldn't start with WPF, as many features from WPF are lacking in Silverlight.

Here is a Silverlight 4+ tutorial:

http://www.silverlightshow.net/items/Capturing-the-Webcam-in-Silverlight-4.aspx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!