位图保存()方法异常

3
我正在尝试编写一个Windows应用程序,将.avi视频转换为位图帧。我能够得到位图,但无法保存它们。在1649个帧之前,帧被完美地保存。但在之后,我遇到了以下异常:

Attempted to read or write protected memory. This is often an indication that other memory is corrupt

我多次运行代码,当处理第1649帧时,代码总是抛出上述异常。程序开始时,输出文件夹为空,当程序停止时,其大小为389 MB。我猜测,Windows不允许程序在短时间内写入这么多数据,但我不确定并且不知道如何解决。有人可以帮忙吗?
for(counter = reader.Start; counter<(reader.Start + reader.Length); counter++)
{
    DummyBitmap = reader.GetNextFrame();
    DummyBitmap.Save(folderBrowserDialog2.SelectedPath + "\\" + counter.ToString()      + ".bmp");
    reader.Position++;
}

1
发布代码。我们怎么知道你在做什么? - Sriram Sakthivel
尝试将平台更改为 x64 平台。 - Beno
按照Sriram上面所说的,发布代码。 - muku
如果您正在使用一个bmp对象而没有将其置空,可能会导致这种情况。 - Kuzgun
1个回答

0

Bitmap类实现IDisposable接口,因此最好这样使用:

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

}

另外,也许这篇文章可以给你一些答案:位图内存泄漏


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接