Я предполагаю, но это похоже на поддельный файл изображения.Это в вашем приложении или вы загружаете его?
Я не думаю, что это имеет какое-либо отношение к памяти mgt.
Чтобы проверить, вы можете попробовать использовать ImageIO, чтобы открыть файл самостоятельно.
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)self.url, NULL);
if(NULL != imageSource) {
size_t imageCount = CGImageSourceGetCount(imageSource);
if(imageCount > 0) {
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], kCGImageSourceCreateThumbnailFromImageIfAbsent,
[NSNumber numberWithInteger:maxSize], kCGImageSourceThumbnailMaxPixelSize, nil];
CGImageRef thumbImage = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, (CFDictionaryRef)options);
self.image = [UIImage imageWithCGImage:thumbImage scale:scale orientation:imageOrientation];
CGImageRelease(thumbImage);
CFRelease(imageSource);
[pool drain];
}
} else {
NSLog(@"Unable to open image %@", self.url);
}
и затем попытайтесь найти количество изображений.
Использование maxSize
и получение миниатюры гарантируют, что вы не загрузите 5-мегапиксельное изображение для помещения вПлитка размером 100x100 в вашем пользовательском интерфейсе.
scale
- это масштаб окна (для iPhone 4 будет 2 и 1 для всего остального).
Чтобы найти ориентацию, необходимо использовать CGImageSourceCopyPropertiesAtIndex
функцию, а затем клавишу kCGImagePropertyOrientation
, чтобы получить ориентацию конкретного изображения.