https://github.com/mikechambers/as3corelib .
Implementação
Então vamos ao que interessa. Esta pequena função abaixo é que faz toda a mágica, é ela que gera a imagem a partir do componente AgonNewsSnapShot e o salva na maquina do usuário:
-
protected function saveSnapshot_clickHandler(event:MouseEvent):void
-
{
-
var imageBitmapData:BitmapData = ImageSnapshot.captureBitmapData(birthDaySnapshot);
-
var imgByteData:ByteArray = PNGEncoder.encode(imageBitmapData);
-
var file:FileReference = new FileReference();
-
file.save(imgByteData,“nomeDoArquivo.png”);
-
}
O componente AgonNewsSnapShot nada mais é do que um Group no qual todos os seus filhos (Labels, Background, Images, etc.) serão desenhados na imagem a ser salva, veja abaixo o exemplo de uma instância deste componente:

Vamos dividir em partes:
Primeiro é capturada a imagem Bitmap do componente AgonNewsSnapShot, que no nosso caso é o componente que será salvo como imagem no computador do usuário:
-
var imageBitmapData:BitmapData = ImageSnapshot.captureBitmapData(agonNewsSnapshot);
Usamos o PNGEncoder para converter a imagem e retornar o ByteArray da mesma:
-
var imgByteData:ByteArray = PNGEncoder.encode(imageBitmapData);
É chamado o system dialog padrão do S.O, para salvar o ByteArray na maquina do usuário no diretório selecionado por ele.
-
var file:FileReference = new FileReference();
-
file.save(imgByteData,“nomeDoArquivo.png”);
Pronto! Seu componente acaba de ser desenhado numa imagem e salvo no computador do usuário.
Bom galera esse é meu primeiro post, espero que tenham gostado, e virão mais por aí.
Abraços.
Referencias:
http://www.switchonthecode.com/tutorials/flex-tutorial-an-asynchronous-jpeg-encoder
http://ask.amoeba.co.in/save-images-from-flash-actionsctipt-3-filereference-save-jpgencoder/




