2014-06-24 48 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; 

我不知道为什么,但使用这些值的大小,图像质量下降,但页面不再崩溃。