Можно ли найти расширение файла 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";