Bitmap.Save()方法异常

时间:2013-07-24 10:05:24

标签: c# image-processing video-capture

我正在尝试编写一个Windows应用程序来将.avi视频转换为位图帧。我能够获得位图但是我在保存它们时遇到了问题。

帧完美保存到第1649帧。之后我得到了这个例外:

  

尝试读取或写入受保护的内存。这通常表明其他内存已损坏

我运行了几次代码,代码在处理第1649帧时总是抛出异常。输出文件夹在开头为空,程序停止时其大小为389 MB。

我猜测窗口不允许程序在短时间内写入这么多数据,但我不确定,我不知道如何修复它。有人可以帮忙吗?

for(counter = reader.Start; counter<(reader.Start + reader.Length); counter++)
{
    DummyBitmap = reader.GetNextFrame();
    DummyBitmap.Save(folderBrowserDialog2.SelectedPath + "\\" + counter.ToString()      + ".bmp");
    reader.Position++;
}

1 个答案:

答案 0 :(得分:0)

Bitmap类实现了IDisposable接口,因此明智的做法是:

using (var b = new Bitmap(...))
{

}

此外,也许这篇文章可以给你一些答案:Bitmap memory leak