'da Aforge.NET kullanarak Webcam akışını alın Kameramı kullanarak bir web kamerası beslemesi yakalamak istiyorum. Bunun için 2 referansı kullanıyorum: AForge.Video.dll
ve AForge.Video.DirectShow.dll
.C# ve WPF
Here's bir parçacık buldum:
public FilterInfoCollection CamsCollection;
public VideoCaptureDevice Cam = null;
void Cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
frameholder.Source = (Bitmap)eventArgs.Frame.Clone();
/*^
* Here it cannot convert implicitly from System.Drawing.Bitmap to
* System.Windows.Media.ImageSource
*/
}
private void startcam_Click(object sender, RoutedEventArgs e)
{
CamsCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
Cam = new VideoCaptureDevice(CamsCollection[1].MonikerString);
Cam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);
Cam.Start();
}
private void stopcam_Click(object sender, RoutedEventArgs e)
{
Cam.Stop();
}
}
Bunlar çerçeveleri göstermek için bir PictureBox
kullanın. WPF'de çalışırken this
kullanılır. Özet olarak kodumun şu anda nasıl göründüğünü özetlemek için. Eğer, Silverlight desteklemek web ya tek başına ya da WP7 için olmak istiyorsanız WPF gelen pek çok özelliği Silverlight eksik olarak
public FilterInfoCollection CamsCollection;
public VideoCaptureDevice Cam = null;
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;
frameholder.Source = bi;
/*^runtime error here because `bi` is occupied by another thread.
*/
bi.EndInit();
}
private void startcam_Click(object sender, RoutedEventArgs e)
{
CamsCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
Cam = new VideoCaptureDevice(CamsCollection[1].MonikerString);
Cam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);
Cam.Start();
}
private void stopcam_Click(object sender, RoutedEventArgs e)
{
Cam.Stop();
}
hey. Teşekkürler ... Şu an üzerinde çalıştığım uygulama için çok sayıda görüntü işleme gerekecek. Yani aynı amaçla Aforge kullanıyorum (yani videoyu ve videoyu yakalamak için) – Sagar