2010-07-14 2 views
1

При использовании iPhone 4 у меня возникают проблемы с памятью при использовании камеры заднего вида. Это вызывает ошибки памяти и не присваивает изображение UIView. Вот код.Задняя камера iPhone 4 слишком высокого качества для UIImageView?

-(IBAction)getCameraPicture:(id)sender { 
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = NO; 

if(sender == takePictureButton) 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
else 
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 

[self presentModalViewController:picker animated:YES]; 
[picker release]; 

}

- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 

    imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [picker dismissModalViewControllerAnimated:YES]; 
} 

Он отлично работает при использовании фронтальная (более низкого качества) камеры, как это делает загрузку существующих снимков не принимаются в полном качестве. Есть ли способ уменьшить качество фотографии, сделанной с помощью задней камеры, или каким-то другим способом обойти эту проблему?

ответ

4

Это распространенная проблема, изображения с камер на iPhone огромны! Обычно намного больше, чем вам нужно. Лучшей практикой является изменение размера изображения, чтобы оно не было больше, чем вам нужно. Я использую MGImageUtilities, и он отлично работает.

Если вам нужно полноразмерное изображение по любой причине, кешируйте его на диск, прежде чем изменять его размер.

Смежные вопросы