J'essaie de prendre des images que je place dans un composant canevas flex vers un bitmap. J'ai été en mesure d'arriver au point où je ne reçois pas d'erreur, mais aucune image ne s'affiche et l'image que j'enregistre en jpg est vide. J'imagine que je ne mets pas les données bitmap correctement mais ne peux pas comprendre ce que je fais mal.Conversion d'un composant flex w/images en bitmap
Voici le code où je suis le convertir en une image bitmap:
var imageSnap:ImageSnapshot = ImageSnapshot.captureImage(_renderPop);
var imageByteArray:ByteArray = imageSnap.data as ByteArray;
var bLoader:Loader = new Loader();
bLoader.loadBytes(imageByteArray);
var bmd:BitmapData = new BitmapData(500,500);
bmd.draw(bLoader);
var imgTest:Image = new Image();
imgTest.source = bmd;
_renderPop.renderCanvas.addChild(imgTest);
var fileRef:FileReference = new FileReference();
fileRef.save(bLoader, 'testImage.jpg');
_renderPop.renderCanvas est où je mettais les images. Quelqu'un voit-il quelque chose de mal?
OK merci, donc cela semble aller un peu plus loin. Mais maintenant je reçois une erreur bitmapdata invalide. Voyez-vous autre chose que je devrais faire pour capturer les bitmapdata correctement? – pfunc
Juste pour clarifier, je reçois l'erreur bitmapdata invalide sur cette ligne: var imageSnap: ImageSnapshot = ImageSnapshot.captureImage (_renderPop.renderCanvas, 150); Si j'utilise juste _renderPop alors je ne reçois pas d'erreur, mais j'obtiens un bitmapImage vide. _renderPop.renderCanvas est un objet mx: Canvas. Je peux le retracer, il est là. – pfunc
Quelle est exactement cette classe ImageSnapshot que vous utilisez? Au lieu d'utiliser ce composant, essayez de le faire manuellement ... Il y a un article de blog très intéressant sur InsideRIA pour faire cela (et beaucoup plus!) http://insideria.com/2008/03/image-manipulation-in -flex.html Cela aide-t-il du tout? – infomaniac