| // |
| // 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 |