2013-07-24 39 views
3

我想寫一個Windows應用程序將.avi視頻轉換爲位圖幀。我能夠獲得位圖,但我在保存它們時遇到問題。Bitmap.Save()方法異常

幀可完美保存至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++; 
} 
+1

郵政編碼。我們怎麼知道你在做什麼? –

+0

嘗試將平臺更改爲x64平臺 – Beno

+0

郵政編碼如上面Sriram所述。 – muku

回答

0

Bitmap類實現IDisposable接口,所以這將是明智的使用它作爲:

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

} 

而且,也許這篇文章可以給你一些答案:Bitmap memory leak