Можно ли найти расширение файла UIImage?

Я нашел следующий код в разделе Поиск типа изображения из NSData или 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, либо предоставьте мне решение с некоторым кодом.

спасибо заранее

2 ответа

Решение

Вы можете изменить изображение на 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;
}

Согласно википедии, BMP-файл не OS/2 начинается с 0x42 0x4D (BM в ASCII).

case 0x42:
    return @"image/bmp";
Другие вопросы по тегам