3

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

帧完美保存到第 1649 帧。之后我得到这个异常:

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

我多次运行代码,代码在处理第 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++;
}
4

1 回答 1

0

Bitmap 类实现了 IDisposable 接口,因此最好将其用作:

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

}

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

于 2013-07-24T10:36:57.220 回答