45 lines
1.0 KiB
Objective-C
45 lines
1.0 KiB
Objective-C
//
|
|
// Created by Fabrice Aneche on 06/01/14.
|
|
// Copyright (c) 2014 Dailymotion. All rights reserved.
|
|
//
|
|
|
|
#import "NSData+ImageContentType.h"
|
|
|
|
|
|
@implementation NSData (ImageContentType)
|
|
|
|
+ (NSString *)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
|