//
|
// Created by Fabrice Aneche on 06/01/14.
|
// Copyright (c) 2014 Dailymotion. All rights reserved.
|
//
|
|
#import "NSData+ImageContentType.h"
|
|
|
@implementation NSData (ImageContentType)
|
|
+ (NSString *)sd_contentTypeForImageData:(NSData *)data {
|
uint8_t c;
|
[data getBytes:&c length:1];
|
switch (c) {
|
case 0xFF:
|
return @"image/jpeg";
|
case 0x89:
|
return @"image/png";
|
case 0x47:
|
return @"image/gif";
|
case 0x49:
|
case 0x4D:
|
return @"image/tiff";
|
case 0x52:
|
// R as RIFF for WEBP
|
if ([data length] < 12) {
|
return nil;
|
}
|
|
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
|
if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
|
return @"image/webp";
|
}
|
|
return nil;
|
}
|
return nil;
|
}
|
|
@end
|
|
|
@implementation NSData (ImageContentTypeDeprecated)
|
|
+ (NSString *)contentTypeForImageData:(NSData *)data {
|
return [self sd_contentTypeForImageData:data];
|
}
|
|
@end
|