J'ai rencontré des erreurs de mémoire sur Firefox avec des hauteurs de toile supérieures à 8000, chrome semble gérer des hauteurs bien supérieures, au moins jusqu'à 32000.
EDIT : Après avoir effectué d'autres tests, j'ai trouvé des erreurs très étranges avec Firefox 16.0.2.
Tout d'abord, il semble que le comportement des canevas en mémoire (créés en javascript) soit différent de celui des canevas déclarés en html.
Deuxièmement, si vous ne disposez pas de la balise html et du jeu de caractères méta appropriés, le canevas peut être limité à 8196, sinon vous pouvez aller jusqu'à 32767.
Troisièmement, si vous obtenez le contexte 2d du canevas et que vous modifiez ensuite la taille du canevas, vous risquez d'être limité à 8196 également. En définissant simplement la taille du canevas avant de saisir le contexte 2d, vous pouvez aller jusqu'à 32767 sans avoir d'erreurs de mémoire.
Je n'ai pas été en mesure d'obtenir systématiquement les erreurs de mémoire, parfois c'est seulement sur le premier chargement de la page, et puis les changements de hauteur suivants fonctionnent. Voici le fichier html avec lequel je testais http://pastebin.com/zK8nZxdE .
2 votes
@Šime Il a dit
tens OR hundreds of thousands
...6 votes
C'est également le cas pour moi. J'ai un canevas de 8000x8000 qui fonctionne bien, mais lorsque je l'agrandis, le contenu disparaît et le dessin est impossible. La taille à laquelle il ne fonctionne pas est beaucoup plus petite sur mon iPad. Je me demande si ce n'est pas une limitation de la mémoire.
34 votes
C'est bizarre quand on retrouve son propre commentaire datant de deux ans et qu'on est toujours confronté au même problème.
5 votes
@Joshua et toujours un an plus tard !
0 votes
D'après les réponses, étant donné qu'une dimension était raisonnablement petite, il a probablement cassé lorsque la plus grande dimension a dépassé 32767. (À moins de le visualiser sur un appareil mobile, où des limites plus petites s'appliquent).
2 votes
La question est de savoir comment attraper ces erreurs, ou mieux ces avertissements, qui sont ce qu'ils sont. Je ne peux pas détecter le matériel du dispositif, je dois donc réagir à une erreur.
0 votes
La valeur la plus sûre est donc de 4096 * 4096. Tout dépassement de cette valeur pose des problèmes sur les appareils mobiles.