Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ByteArray to BitmapData AS3

I'm using com.adobe.images.PNGEncoder to encode bitmapData to a byteArray. Is there a way to convert the byteArray back to bitmapData NOT using a Loader? thanks.

EDIT: the reason i don't want to use a Loader is it being Asynchronous, and I don't want to implement eventlisteners.

like image 790
astralmaster Avatar asked Jul 18 '12 12:07

astralmaster


2 Answers

The following is using the loader class but is synchronous.

var loader:Loader = new Loader();
loader.loadBytes(byteArray);
bmpData.draw(loader);

Edit: Nevermind the loadBytes is asynchronous too, the documentation says you need to wait for the init event. What is the reason for not wanting event listeners? They are a pretty common practice in AS3.

So you need something like this :

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, function(e:Event):void {
   bmpData.draw(loader);    
});
loader.loadBytes(byteArray);
like image 186
Barış Uşaklı Avatar answered Nov 16 '22 20:11

Barış Uşaklı


Take a look on the setpixels() method of bitmapdata. It requires a rectangle to define the size and a bytearray as content. This method synchronous

like image 21
BrunoFenzl Avatar answered Nov 16 '22 20:11

BrunoFenzl