2009-11-25 4 views
1

Je tente de capturer une très grande image qui a été dynamiquement créée dans Flash Player (la taille de l'image est de 2400px par 12000px) et je rencontre des problèmes très sérieux ... L'utilisateur ajoute des éléments à une toile, puis, lorsque l'utilisateur a fini, la toile peut atteindre 2400px de large et 12000px environ. Le problème se pose lorsque je tente de sauvegarder l'image sur le disque dur. Maintenant, je ne sais pas si cela va affecter le correctif recommandé, mais l'image rendue ne sera pas enregistrée sur le disque dur, il sera envoyé à un serveur. Je connais la limite de ~ 4050px dans Flash Player et pensais que je pourrais contourner cela en coupant les images avec la méthode ImageSnapshot.captureBitmapData() et en gardant la variable Rectangle requise en dessous de 4000px puis répétez cela sur la grande image jusqu'à la fin où les images finales seront assemblées plus tard. Cependant ... Comme je l'ai mentionné l'erreur vient quand elle atteint le 'fileReference.save (pngImage); méthode ... Quelqu'un d'autre a-t-il fait quelque chose comme ça?Enregistrement de grandes images créées dans Flex

Répondre

1

Avez-vous essayé si fileReference.save fonctionne du tout (par exemple avec des images plus petites comme 100 px hauteur)? Il semble que les données de l'image seront peut-être transformées en données chaîne, donc il y a peut-être d'autres limites que vous ne connaissez pas (vos données d'image non compressées seront autour de 86 Mo, donc même un fichier PNG avec une bonne compression environ 10 Mo, au moment où vous essayez d'en enregistrer un tiers, mais 3 Mo sont encore assez gros).

+0

Oui, j'avais la sauvegarde de travail avant d'avoir essayé d'enregistrer une image aussi grande. – Adrian

+0

Ensuite, essayez d'augmenter lentement la taille de l'image pour voir où se trouve la limite, puis utilisez f.e. la moitié de cette limite doit être du bon côté. – schnaader

+0

C'est un bon point cependant, je vais essayer d'enregistrer un 4000 par 2400px img sans l'écrêtage et voir si cela fonctionne. – Adrian

Questions connexes