iOS開発-ファイルタイプの判断方法

1140 ワード

ファイルタイプの判断方法
  • は、接尾辞によって直接判断することができる.
  • pathExtensionによって接尾辞名を取得する(この方法は厳密ではなく、接尾辞名が変更される場合がある可能性がある)
  • 最初のバイトで判断:SDWebImageのメソッド(以下)を参照:
  • + (NSString *)sd_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";
         case 0x52:
             // R as RIFF for WEBP
             if ([data length] < 12) {
                 return nil;
             }
    
             NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
             if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
                 return @"image/webp";
             }
    
             return nil;
     }
     return nil;
    

    }