是否有可能找到UIImage的文件扩展名?

时间:2013-07-24 07:43:43

标签: ios objective-c uiimage file-extension image-file

我在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

2 个答案:

答案 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";