C# 将图片框中的图像保存到特定目录
我正在尝试使用forge.NET将网络摄像头图像保存到目录中 这是我的密码:C# 将图片框中的图像保存到特定目录,c#,winforms,aforge,C#,Winforms,Aforge,我正在尝试使用forge.NET将网络摄像头图像保存到目录中 这是我的密码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } FilterInfoCollection webcam; VideoCaptureDevice cam; Bitmap bitmap; private void Form1_Load(obj
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
FilterInfoCollection webcam;
VideoCaptureDevice cam;
Bitmap bitmap;
private void Form1_Load(object sender, EventArgs e)
{
webcam = new FilterInfoCollection(FilterCategory.VideoInputDevice);
cam = new VideoCaptureDevice(webcam[0].MonikerString);
cam.NewFrame += new NewFrameEventHandler(cam_NewFrame);
cam.Start();
}
void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
bitmap = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = bitmap;
pictureBox1.Image.Save("c:\\image\\image1.jpg");
}
但我有一个例外:
未处理InvalidOperationException
对象当前正在其他地方使用。
如果在GetHdc方法之后使用图形对象,请调用RealseHdc方法。
提前感谢。问题是这一行:
pictureBox1.Image = bitmap;
pictureBox1.Image.Save("c:\\image\\image1.jpg");
您正在尝试保存尚未正确加载的图像,并且您还面临交叉线程问题
这种情况下的解决方案是在绘图时不使用多个螺纹
void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
bitmap = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = bitmap;
try
{
this.Invoke((MethodInvoker)delegate
{
//saves image on its thread
pictureBox1.Image.Save("c:\\image\\image1.jpg");
});
}
catch (Exception ex)
{
MessageBox.Show(""+ex);
}
}
看看这个