iOS 获取图片的后缀
//获取图片后缀
+ (NSString *)typeForImageData:(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";
}
return nil;
}
iOS 判断图片的类型方法(jpep/png/gif等)
https://www.jianshu.com/p/54fe55e22b40
方法
取出图片数据的第一个字节, 就可以判断出图片的真实类型
//通过图片Data数据第一个字节 来获取图片扩展名
- (NSString *)contentTypeForImageData:(NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @"jpeg";
case 0x89:
return @"png";
case 0x47:
return @"gif";
case 0x49:
case 0x4D:
return @"tiff";
case 0x52:
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 @"webp";
}
return nil;
}
return nil;
}
使用方法
//假设这是一个网络获取的URL
NSString *path = @"http://www.yxzoo.com/uploads/allimg/160803/1-160P3113351.jpg";
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
//调用获取图片扩展名
NSString *string = [self contentTypeForImageData:data];
//输出结果为 jpeg
NSLog(@"%@",string);
/** 根据图片二进制流获取图片格式 */ - (NSString *)imageTypeWithData:(NSData *)data {
uint8_t type;
[data getBytes:&type length:1];
switch (type) {
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;
}

浙公网安备 33010602011771号