有没有可能find一个UIImage的文件扩展名?

我发现下面的代码在寻找NSData或UIImage的图像types,这有助于检查四个不同的图像types的UIimage

(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"; } return nil; } 

我想知道如何find该文件是一个位图图像或不是它有.bmp扩展名。 有人可以帮助我吗? 或者修改上面的代码来findbmp,或者请给我提供一些代码的解决scheme。

谢谢你

你可以通过使用改变图像到NSData
UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat compressionQuality#>)
要么
UIImagePNGRepresentation(<#UIImage *image#>)
方法。 这样调用它:

 - (void) yourMethod{ NSData *imageData = UIImagePNGRepresentation(yourImage); NSString *str = [self contentTypeForImageData:imageData]; } - (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: break; case 0x42: return @"image/bmp"; case 0x4D: return @"image/tiff"; } return nil; } 

根据维基百科 ,非OS / 2 BMP文件开始与0x42 0x4D (BM in ascii)。

 case 0x42: return @"image/bmp"; 
Interesting Posts