2014-06-24 4 views
0

Si jeios 7.1.1 toile mémoire drawImage fuite

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

sur un cadre d'animation, je semble avoir une énorme fuite de mémoire jusqu'à ce que ce soit safari ou plantage du chrome IOS. Si je ne découpe pas la toile et que je la dessine directement, il n'y a pas de fuite.

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

Problème est que je dois être en mesure de clip. Cela semble SEULEMENT se produire sur IOS. Est-ce que quelqu'un sait pourquoi cela se passe? Pour une solution de contournement, quelqu'un connaît un bon moyen de forcer la récupération de place/effacer l'accumulation de mémoire.

Tous et tous l'aide très appréciée. Merci :)

Répondre

0

J'ai eu ce problème aussi. Je pense que c'est un bug de la version 7.1.1. Quant à la solution de contournement - vous venez de le dire. : \

Éditer: Hmm ... en fait je prends ça en arrière. Ce que j'avais était une fuite de mémoire audio.

+0

Oui, c'est comme ça. Malheureusement, je dois être en mesure de couper. – william

+0

Une solution de contournement lente jusqu'à ce qu'Apple corrige ce problème horrible - copie par pixel. – Agamemnus

0

je rencontre le même problème sur IOS 9.0.1

La seule solution que j'ai trouvé pour réduire la taille des « 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; 

Je ne sais pas pourquoi, mais avec ces valeurs, la qualité de l'image est réduite mais la page ne se bloque plus.