这个方法我注释掉就不会出异常 不注释的话程序就蹦了 图片那些都Dispose()了
if (face != null)
{
this.label1.Text = face.Count.ToString();
for (int i = 0; i < face.Count; i++)
{
Image fromImage = capture.QueryFrame().Bitmap;
//创建新图位图
Bitmap bitmap = new Bitmap(face[i].Width, face[i].Height);
//创建作图区域
Graphics graphic = Graphics.FromImage(bitmap);
//截取原图相应区域写入作图区
graphic.DrawImage(fromImage, 0, 0, face[i], GraphicsUnit.Pixel);
////从作图区生成新图
//Image saveImage = Image.FromHbitmap(bitmap.GetHbitmap());
////保存图片
//saveImage.Save("Image/" + i + ".bmp", ImageFormat.Png);
//释放资源
//saveImage.Dispose();
graphic.Dispose();
bitmap.Dispose();
fromImage.Dispose();
}
}
你把每步执行的i打印出来,看看是哪次循环出的错
Image fromImage = capture.QueryFrame().Bitmap;
你这个代码返回的资源有问题吧,导致Graphics 对象无法绘制纸张图片。
运行库版本问题,如果是4.0的有两个版本的。编译时最好使用any cpu