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

she*_*r17 5 file-extension objective-c uiimage image-file ios

我在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;
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何找到该文件是一个位图图像或不具有.bmp扩展名.有人可以请帮助我.修改上面的代码也可以找到bmp,或者请给我一些代码的解决方案.

谢谢你

rpt*_*thi 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你做了UIImagePNGRepresentation,你已经知道它是一个PNG. (5认同)