Heinrich, Ken,

Thank you both for the information.

Wayne

On Tue, Aug 5, 2008 at 2:51 AM, Heinrich Giesen
<[EMAIL PROTECTED]> wrote:
>
> On 05.08.2008, at 10:03, Wayne Shao wrote:
>
>> The imageData method returns NSData*.  Is there anyway to know the
>> image type (e.g, PNG, TIFF, or JPEG) of the data?
>
>
> besides that what Ken Ferry wrote you may also use (as I do) a low level
> way to determine the image type: check for the magic number of image data.
>
>   const unsigned char *bytes = [imageData bytes];
>   //NSLog( @"%02x %02x %02x %02x ", bytes[0], bytes[1], bytes[2], bytes[3]
> );
>   BOOL isTIFF_BigEndian = (bytes[0]=='M') && (bytes[1]=='M');
>   BOOL isTIFF_LittleEndian = (bytes[0]=='I') && (bytes[1]=='I');
>   BOOL isJPEG    = (bytes[0]==0xff) && (bytes[1]==0xd8) && (bytes[2]==0xff);
>   BOOL isPNG     = (bytes[0]==0x89) && (bytes[1]=='P') && (bytes[2]=='N') &&
> (bytes[3]=='G')
>                 && (bytes[4]==0x0d) && (bytes[5]==0x0a) && (bytes[6]==0x1a)
> && (bytes[7]==0x0a);
>   BOOL isGIF     = (bytes[0]=='G') && (bytes[1]=='I') && (bytes[2]=='F');
>   BOOL isPDF     = (bytes[0]=='%') && (bytes[1]=='P') && (bytes[2]=='D')
>                 && (bytes[3]=='F') && (bytes[4]=='-');
>   BOOL isBMP     = (bytes[0]=='B') && (bytes[1]=='M');
>   BOOL isICNS    = (bytes[0]=='i') && (bytes[1]=='c') && (bytes[2]=='n') &&
> (bytes[3]=='s');
>
>
> The Carbon/Cocoa functions and methods do nothing else, they test the magic
> number.
>
>        Heinrich
>
> --
> Heinrich Giesen
> [EMAIL PROTECTED]
>
>
>
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to