我在Finding image type from NSData or UIImage中找到了以下代码,这有助于检查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;
}
我想知道如何找到该文件是位图图片,还是没有.bmp扩展名。有人可以请帮助我。修改上面的代码也可以找到bmp,或者请给我一些代码的解决方案。
感谢adnvance
答案 0 :(得分:5)
您可以使用
将图像更改为NSData
UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat compressionQuality#>)
OR
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;
}
答案 1 :(得分:1)
根据wikipedia非OS / 2 BMP文件以0x42 0x4D
开头(在ascii中为BM)。
case 0x42:
return @"image/bmp";