我正在尝试编写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++;
}

最佳答案

位图类实现IDisposable接口,因此将其用作:

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

}


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

关于c# - Bitmap.Save()方法异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17830872/

10-10 13:30
查看更多