1
我有一個應用程序可以處理高分辨率圖像(大約100多萬像素),而且我有一些內存問題。當BitmapData對象被創建時,它會分配內存來存儲這個圖像。問題在於,我已經有了這個圖像像素的ByteArray(它有大約400+ MB),所以當BitmapData被創建時,它會分配內存來存儲我在ByteArray上的數據。BitmapData創建時分配大量內存
創建後,我可以將ByteArray中的像素設置爲BitmapData並釋放ByteArray。但是,這種內存峯值有時會導致運行時引發異常,並告知系統內存不足。
有什麼辦法告訴BitmapData使用我自己的ByteArray?或者我不需要使用其他解決方案的兩倍,我需要的內存?
@AstheWormTurns這是一個相當不錯的資源,深入研究了BitmapData的內存消耗情況,我可能需要重新閱讀一次,以確保我記得實際上它的工作原理。 – shaunhusain 2012-02-03 03:41:13
@Tiago我假設你使用BitmapData上的setPixels將字節數組中的信息加載到bitmapData中?如果你沒有找到任何其他的解決方案,也許你可以分片加載圖像,這意味着將第一個1/4的圖像拉入內存(或整個東西然後大塊),然後調用setPixels 4次,並在每次釋放內存在原始字節數組中,只要它已經在bitmapData上設置了...(宿舍僅僅是一個例子,可能會有更多或更少的分區工作,我不確定)。 – shaunhusain 2012-02-03 03:46:58
@shaunhusain謝謝,這聽起來不錯。我會嘗試的。 – 2012-02-04 12:48:38