Skip to content

Instantly share code, notes, and snippets.

@kwylez
Forked from mattt/UTTypeForImageData.m
Created April 8, 2014 01:35
Show Gist options
  • Save kwylez/10081175 to your computer and use it in GitHub Desktop.
Save kwylez/10081175 to your computer and use it in GitHub Desktop.
@import MobileCoreServices;
static CFStringRef UTTypeForImageData(NSData *data) {
const unsigned char * bytes = [data bytes];
if (data.length >= 8) {
if (bytes[0] == 0x89 && bytes[1] == 0x50 && bytes[2] == 0x4E && bytes[3] == 0x47 && bytes[4] == 0x0D && bytes[5] == 0x0A && bytes[6] == 0x1A && bytes[7] == 0x0A) {
return kUTTypePNG;
}
}
if (data.length >= 4) {
if (bytes[0] == 0xFF && bytes[1] == 0xD8 && bytes[2] == 0xFF && bytes[3] == 0xE0) {
return kUTTypeJPEG;
}
}
if (data.length >= 3) {
if (bytes[0] == 0x47 && bytes[1] == 0x49 && bytes[2] == 0x46) {
return kUTTypeGIF;
} else if (bytes[0] == 0x49 && bytes[1] == 0x49 && bytes[2] == 0x2A) {
return kUTTypeBMP;
}
}
if (data.length >= 2) {
if (bytes[0] == 0x42 && bytes[1] == 0x4D) {
return kUTTypeBMP;
}
}
return nil;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment