2011-07-11 88 views
8

我需要編輯(增加高度)圖像。 該文件大部分爲5000 * 4000。當我創建一個大尺寸的bmp並在bmp實例上調用Graphics.DrawImage方法時,我發現內存已經達到峯值水平。使用大型位圖會導致內存不足異常

如何擺脫內存不足異常?有沒有辦法在C#中使用大型位圖?

+1

你能提供一些代碼嗎? – VMAtm

+1

它的一個內存問題檢查這個http://stackoverflow.com/questions/5801652/bitmap-while-assigning-height-width-crashes/5802113#5802113 – V4Vendetta

+1

我想你有同樣的問題,當你試圖採取其他人有超過一個GB的內存爲.dll。可能的答案可能是使用流並以塊處理文件。 –

回答

0

這取決於你的應用程序特定requeirements,它不是從上你的帖子很清楚,但generaly,大的媒體文件(圖片,聲音,視頻)工作,我覺得真的很不錯的解決方案是

Memory Mapped Files

在內存映射文件中將yuor映像保存在磁盤上,並通過免費的yuor RAM儘可能地從大量數據中調整磁盤的大小,這些數據可能不需要快速訪問(至少在那一刻)

希望這會有所幫助。 此致敬禮。

+0

這並不容易.net –

+0

這比以前更容易了,相信我,因爲現在你已經包裝了.NET類。 (僅適用於.NET Framework 4.0) – Tigran

+1

OOM從不*由RAM耗盡引起。位圖已經使用MMF,創建更多隻是讓您更快地用完虛擬內存。 –

相關問題