If it is really a PNG file, you should just be able to assign the bytearray 
directly to the source, but be sure you’ve set the bytearray’s position=0 
before doing so.


On 4/12/10 4:27 PM, "Amanda Machutta" <[email protected]> wrote:






Hey All,

I’m trying desperately to load an image into flex from a byteArray and for the 
life of me I cannot seem to get it to work. I have code that uses a 
FileReference to browse for a *.png file, and then on completion it will set 
the img.source = fileReference.data. This works great! The fileReference.data 
is in the form of a byteArray.

I then use a RemoteObject to save that byteArray to the database using 
Coldfusion. That part works perfectly as well.

I can the retrieve the byteArray, pass it back to flex, verify that all the 
properties of the byteArray are exactly the same as the properties were when 
the image worked, and then assign it to the img.source, and I get a broken 
image.

if I do this:
if(this.chat_queue.company_logo.length > 0){
var _loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void
 {
this.imgLogo.source = e.currentTarget.content;
});
_loader.loadBytes(new 
PNGEncoder().encodeByteArray(this.chat_queue.company_logo,90,43));
}

Then I get “Error 2030: End of file was encountered.”

If I try this:  }
if(this.chat_queue.company_logo.length > 0){
var _loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void
 {
this.imgLogo.source = e.currentTarget.content;
});
_loader.loadBytes(this.chat_queue.company_logo);
}

Then I get “Error #2124: Loaded file is an unknown type.”



And if I just simply do this:

this.imgLogo.source = this.chat_queue.company_logo;

I get a broken image without error.



Keep in mind that this.chat_queue.company_logo is a byteArray, and is stored in 
the database as a blog.



Thanks,

I’m at my wits end. Any help would be greatly appreciated.

--
Alex Harui
Flex SDK Team
Adobe System, Inc.
http://blogs.adobe.com/aharui

Reply via email to