2014-06-24 49 views
0

如果我IOS 7.1.1畫布的drawImage內存泄露

ctx.drawImage(anotherCanvas, clipX, clipY, clipW, clipH, x, y, w, h); 

一個動畫幀上,我似乎得到了巨大的內存泄漏,直到要麼IOS Safari或Chrome瀏覽器崩潰。如果我不剪裁畫布並直接畫上,則不會出現泄漏。

ctx.drawImage(anotherCanvas, x, y, w, h); 

問題是我需要能夠剪輯。 這似乎只發生在IOS上。有人知道爲什麼會發生這種情況嗎?

至於解決方法是否有人知道強制垃圾收集/清除內存堆積的好方法。

任何和所有的幫助非常感謝。謝謝:)

回答

0

我也一直有這個問題。我認爲這是7.1.1中的一個錯誤。至於解決方法 - 你剛纔說過。 :\

編輯:嗯......其實我把它回來。我的音頻內存泄漏。

+0

好像是這樣。不幸的是我需要能夠剪輯。 – william

+0

一個緩慢的解決方法,直到蘋果修復這個可怕的問題 - 每像素副本。 – Agamemnus

0

我遇到的IOS 9.0.1

同樣的問題,我發現的唯一的解決方法是減少「anotherCanvas」

var maxRes = Math.min(canvas.width(), canvas.height()); 

var ratio = Math.min(
    ratioWidth = maxRes/anotherCanvas.width, 
    ratioHeight = maxRes/anotherCanvas.height 
); 
anotherCanvas.width = anotherCanvas.width * ratio; 
anotherCanvas.height = anotherCanvas.width * ratio; 

clipX = clipX * ratio; 
clipY = clipY * ratio; 
clipW = clipW * ratio; 
clipH = clipH * ratio; 

我不知道爲什麼,但使用這些值的大小,圖像質量下降,但頁面不再崩潰。