Наше приложение сбой при импорте изображений более 8 megapixels
на iPhone
. Время от времени и высокая память.ошибка приложения при импорте более 8 мегапикселей Изображение для uiimageview
Кстати образы, которые мы пытаемся импортировать больше, чем 8 мегапикселей, а не то, что огромный слишком 4000 x 3000
(12 Мп) .Photos, сделанные с помощью камеры iPhone
являются 3264 x 2448
(8 мегапикселей).
Вот наша ПАМЯТЬ ОТЧЕТ
при ввозе 8 Мп изображение
при ввозе 12 Мегапикселей
огромная разница в памяти Применение. Кто-нибудь знает, почему существует огромная разница в использовании памяти и любом решении этого?
(мы будем использовать изображения для редактирования, фильтрации, обработки и т. Д.).
Вот наш код
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *selectedImage=[info objectForKey:UIImagePickerControllerOriginalImage];
//SCALING UIIMAGE
UIImage *scaledImage=[[UIImage alloc]init];
if ((selectedImage.size.width>3264) && (selectedImage.size.height>2448))
{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(selectedImage.size.width/2, selectedImage.size.height/2), NO, 0.0);
NSLog(@" HEIGHT %f",selectedImage.size.height);
NSLog(@" WIDTH %f",selectedImage.size.width);
[selectedImage drawInRect:CGRectMake(0, 0,selectedImage.size.width/2 ,selectedImage.size.height/2)];
scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSLog(@" HEIGHT %f",scaledImage.size.height);
NSLog(@" WIDTH %f",scaledImage.size.width);
VisualEffectImageVIew.image=scaledImage;
BackgroundImageView.image=scaledImage;
ForegroundImageView.image=scaledImage;
}
else
{
VisualEffectImageVIew.image=selectedImage;
BackgroundImageView.image=selectedImage;
ForegroundImageView.image=selectedImage;
}
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
else
{
[popoverController dismissPopoverAnimated:YES];
[self popoverControllerDidDismissPopover:popoverController];
}
}
Изменение размера изображения будет проблемой, поскольку некоторые могут быть очень маленькими, в этом случае, как проверить разрешение изображения и изменить его размер, если они большие, чтобы они использовали меньше памяти? – USERX2DX
После загрузки изображения из пакета вы можете получить imageData.Set UIImage с NSData.Now вы можете получить размер изображения. –
ручкаImage.size.width, рукояткаImage.size.height. :-) –