2013-09-17 2 views
0

У меня есть небольшой вопрос о том, как сохранить изображение в UIImagePickerController.Сохранить изображение в UIImagePickerController

Я пытался сделать это с помощью следующего кода:

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

if (takePhotoSave == 1) { 
    takePhotoSave = 0; 

    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} } 

я не получаю ошибки, но изображение не сохраняется

Большое спасибо

ответ

0
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 
[self dismissViewControllerAnimated:NO completion:nil]; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo){ 
     UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
     UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 

     //save to document directory 
     NSData *pngData = UIImagePNGRepresentation([self imageWithImage:image scaledToSize:CGSizeMake(image.size.width/5, image.size.height/5)]); 
     NSString *filePath = [documentsPath stringByAppendingPathComponent:@"image_test.png"]; //Add the file name 
     [pngData writeToFile:filePath atomically:YES]; //Write the file 


    } 

Это все, что вы необходимо сохранить фотографии. Если вы хотите, чтобы сохранить его как UIImage смотрите ниже:

if ([NSData dataWithContentsOfFile:[self documentsPathForFileName:@"image_test.png"]]) { 

    NSData* pngData = [NSData dataWithContentsOfFile:[self documentsPathForFileName:@"image_test.png"]]; 
    UIImage* image = [UIImage imageWithData:pngData]; 


    UIImageView* imageView = [[UIImageView alloc] initWithImage:image]; 
    [imageView setFrame:CGRectMake(0.0, 0.0, imageView.image.size.width, imageView.image.size.height)]; 
    [imageView setCenter:self.view.center]; 
    [self.view addSubview:imageView]; 

} 
+0

У меня есть для сохранения изображения в документах, чтобы показать изображение в ImagePicker? – user2692514

0

Проблемы здесь, кажется, что вы не ставите цель завершения.

UIImageWriteToSavedPhotosAlbum(image, self, nil, nil); 

Это прекрасно работает для меня и поэтому должно исправить вашу проблему.

Вы также можете установить цели завершения, чтобы убедиться, что он правильно спасаемый:

// Save image 
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:), nil); 

// Проверяет, если произошла ошибка

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error { 

    // Unable to save the image 
    if (error) { 

    } 
    // All is well 
    else { 

    } 
} 

Надеется, что это помогает

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