No worries! And thanks for sharing.
Cheers Juan Pablo Califano 2010/6/10 Karim Beyrouti <[email protected]> > Thanks for your help - uploaded the finished code to the google SVN - so > it's free for all... > > > https://code.google.com/p/kurstcode/source/browse/trunk/libs/com/kurst/air/utils/ImageUtils.as > > Regards > > > Karim > > > On 24 May 2010, at 20:44, Karim Beyrouti wrote: > > > Perfect - thank you for the extended and most useful the answer - had > started thinking along these lines but it's good to know there was no other > way ( apart for the loader ) - as i just need width and height - think i am > going to extract that from the ByteArray... > > > > thanks again... > > > > > > - k > > > > > > On 24 May 2010, at 20:09, Juan Pablo Califano wrote: > > > >> If you want to convert it back to pixels, I'd say go with the Loader > >> approach. > >> > >> Other than that, you'd have to write a JPEG decoder (seems like a waste > of > >> time, considering you can already use a Loader, which would also be > faster, > >> probably). > >> > >> Now, if you are only interested in getting the width and height, that > data > >> is in the SOFO block (SOFO stands for start of frame 0). > >> > >> SOFO is marked by this sequence of bytes: > >> > >> 0xFF 0xC0 > >> > >> So, basically, you can loop through your bytearray until you find this > >> sequence. > >> > >> Then offset your current position as necessary and read the height and > >> width. > >> > >> If you take a look at the JPEG encoder from as3CoreLib, you can see you > have > >> to skip 5 bytes from the beggining of the SOFO marker to get the height > (2 > >> bytes) and the width (2 bytes). > >> > >> > http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/images/JPGEncoder.as > >> > >> Now, I haven't read the JPEG spec, so I'm not sure if this is a fixed > >> offset. I'm assuming it is, but you'd better check it if you want to use > >> this code. I've tried it with a couple of JPEG's and it worked fine, > >> though. > >> > >> Also, you might want to validate if what you've got is a JPEG (check the > >> first 2 bytes for 0xff, 0xd8); you might also want to check that you're > not > >> reading out of the buffer bounds. > >> > >> > >> function readJPEGSize(data:ByteArray):void { > >> var len:int = 0; > >> var i:int = 0; > >> var offset:int = 0; > >> while(data.bytesAvailable > 1) { > >> // look for 0xffc0 > >> if(data[i] == 0xFF && data[i + 1] == 0xC0) { > >> offset = i; > >> break; > >> } > >> i++; > >> } > >> > >> /* > >> writeSOF0(image.width,image.height); > >> writeWord(0xFFC0); // marker > >> writeWord(17); // length, truecolor YUV JPG > >> writeByte(8); // precision > >> writeWord(height); > >> writeWord(width); > >> Skip 5 bytes: > >> 2 SOFO marker > >> 2 length > >> 1 precision > >> */ > >> var h:int = 0; > >> var w:int = 0; > >> if(offset > 0) { > >> offset += 5; > >> data.position = offset; > >> h = data.readUnsignedShort(); > >> w = data.readUnsignedShort(); > >> trace(w,h); > >> } > >> } > >> > >> Cheers > >> Juan Pablo Califano > >> > >> > >> 2010/5/24 Karim Beyrouti <[email protected]> > >> > >>> Hi All > >>> > >>> do any of you how to convert a ByteArray (of a JPG) back into a > BitmapData > >>> object? > >>> > >>> Actually - i just need to get the dimensions of the bitmap before > trashing > >>> it. I know you can do 'myloader.loadBytes( byteArray )' - but i am > avoiding > >>> that for now - as i just need to get the size of the image. > >>> > >>> Any pointers? > >>> > >>> > >>> mucho thanks > >>> > >>> > >>> - karim > >>> _______________________________________________ > >>> Flashcoders mailing list > >>> [email protected] > >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > >>> > >> _______________________________________________ > >> Flashcoders mailing list > >> [email protected] > >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > > > > > _______________________________________________ > > Flashcoders mailing list > > [email protected] > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > > _______________________________________________ > Flashcoders mailing list > [email protected] > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > _______________________________________________ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

