No worries!

And thanks for sharing.

Cheers
Juan Pablo Califano

2010/6/10 Karim Beyrouti <ka...@kurst.co.uk>

> 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 <ka...@kurst.co.uk>
> >>
> >>> 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
> >>> Flashcoders@chattyfig.figleaf.com
> >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >>>
> >> _______________________________________________
> >> Flashcoders mailing list
> >> Flashcoders@chattyfig.figleaf.com
> >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> >
> > _______________________________________________
> > Flashcoders mailing list
> > Flashcoders@chattyfig.figleaf.com
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
>
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to