Aforge.net Capture de l'Appareil photo & Enregistrer l'image dans le répertoire

tout le monde. J'ai été coincé ici à faire avec ce bug pendant des jours, mais je ne pouvais toujours pas le comprendre.
Mon avis: je pense que mon code a un problème que je n'ai pas détruire l'objet correctement après utilisation, (je ne suis pas très familier avec ces concepts de libérer des ressources, le filetage) .
J'ai eu ces code en prenant référence de ce que les gens ne sur youtube, mais en dépit de moi en train de faire exactement la même chose, mon code ne fonctionne pas très bien.

SITUATION:
J'ai deux zones de l'image, à gauche, on peut prendre des vidéo de moi, à droite prendre la capture d'écran, si vous appuyez sur button1 , vous pourrez commencer la vidéo, clone_button copie d'une image c'est à dire de prendre un instantané, et save_image devez l'enregistrer sur le chemin de référence, cependant, je reçois un générique erreur s'est produite dans GDI+, encore et encore, alors que je suis en train de l'enregistrer. Aussi, mon débogueur semblait devenir fou (c'est à dire pas réussi à mettre fin à l'vshost.exe ) une fois que j'ai exécuté ce programme, j'ai redémarrer l'ordinateur pour obtenir mon code fonctionne à nouveau, ce qui est désolant et frustrant.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Imaging;
//AForge.Video dll
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Imaging;
using AForge.Imaging.Filters;
using AForge;
namespace WebCameraCapture
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private FilterInfoCollection CaptureDevice; //list of webcam
private VideoCaptureDevice FinalFrame;
private void Form1_Load(object sender, EventArgs e)
{
CaptureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);//constructor
foreach (FilterInfo Device in CaptureDevice)
{
comboBox1.Items.Add(Device.Name);
}
comboBox1.SelectedIndex = 0; //default
FinalFrame = new VideoCaptureDevice();
}
private void button1_Click(object sender, EventArgs e)
{
FinalFrame = new VideoCaptureDevice(CaptureDevice[comboBox1.SelectedIndex].MonikerString);//specified web cam and its filter moniker string
FinalFrame.NewFrame += new NewFrameEventHandler(FinalFrame_NewFrame);//click button event is fired, 
FinalFrame.Start();
}
void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs) //must be void so that it can be accessed everywhere.
//New Frame Event Args is an constructor of a class
{     
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();//clone the bitmap
}
private void From1_CLosing(object sender, EventArgs e)
{
if (FinalFrame.IsRunning==true) FinalFrame.Stop();
}
private void save_Click(object sender, EventArgs e)
{
if (pictureBox2.Image != null)
{
Bitmap varBmp = new Bitmap(pictureBox2.Image);
Bitmap newBitmap = new Bitmap(varBmp);
varBmp.Dispose();
varBmp = null;
varBmp.Save(@"C:\a.png", ImageFormat.Png);
}
else
{ MessageBox.Show("null exception"); }
}
private void clone_Click(object sender, EventArgs e)
{
pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
}
}
}

Tout AForge.net l'utilisateur pouvez APPUYEZ simplement sur le LIEN ci-dessous et de l'essayer. Merci!

EXEMPLE

OriginalL'auteur el psy Congroo | 2014-07-16