我試圖使用JavaScript drawImage從緩衝區畫布繪製到另一個在Firefox中;我使用相當大的畫布每幀多次調用繪圖。我的內存使用率在Firefox中居首,但在Chrome中幾乎沒有達到頂峯。我很好奇這種行爲的原因,並且如果有一種解決方法可以在不再需要的情況下通過繪製圖像釋放使用的內存(我假設)。drawImage(HTML5CanvasElement)Firefox內存指數增加
我需要渲染使用globalCompositeOperation ='source-in',所以這就是爲什麼我使用這種方法。
這裏的基本思想是:
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
//set height and width of canvas to browser window
var dummyCanvas = document.createElement('canvas');
var dummyctx = dummyCanvas.getContext('2d');
dummyCanvas.width = canvas.width;
dummyCanvas.height = canvas.height;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
//draw some stuff on normal canvas
dummyCtx.clearRect(0, 0, canvas.width, canvas.height);
//draw a polygon on buffer canvas
dummyctx.globalCompositeOperation = 'source-in';
//draw another polygon on buffer canvas
ctx.drawImage(dummyctx.canvas, 0, 0);
//draw some more stuff on normal canvas
}
這是內存的問題只是在Firefox中的錯誤?難道我做錯了什麼?有沒有解決方法?
非常感謝您的幫助!
您是否設法找到解決方案?我正面臨完全相同的問題 – KeitIG