我正在尝试编写一个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++;
}
答案 0 :(得分:0)
Bitmap类实现了IDisposable接口,因此明智的做法是:
using (var b = new Bitmap(...))
{
}
此外,也许这篇文章可以给你一些答案:Bitmap memory leak。