在手机相册中保存图片失败

本文讨论了在iOS开发中遇到的UIImagePicker控制器无法将拍摄的图片保存到相册的问题。问题表现为点击相机按钮后,预览和使用按钮显示正常,但图片实际未保存。解决方案涉及正确设置UIImagePicker的代理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/2681

问题描述:

UIImagePicker 控制器,在点击相机按钮的时候,预览和使用按钮显示,但是图片没有保存在图片相册中。

代码:

-(void)viewDidAppear:(BOOL)animated{
    picker = [[UIImagePickerController alloc] init];
    // Set the image picker source:
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    // Hide the controls:
    picker.showsCameraControls = YES;
    picker.navigationBarHidden = YES;
    // Make camera view full screen:
    picker.wantsFullScreenLayout = YES;
    // Insert the overlay:
    picker.cameraOverlayView = self.view;
      self.view.backgroundColor=[UIColor clearColor];
    // Show the picker:
    [self presentModalViewController:picker animated:YES];
}


解决方案:

这样设置:

首先设置UIImagePickerController代理本身。

-(void)viewDidAppear:(BOOL)animated{
    picker = [[UIImagePickerController alloc] init];
picker.delegte = self ;
    // Set the image picker source:
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    // Hide the controls:
    picker.showsCameraControls = YES;
    picker.navigationBarHidden = YES;
    // Make camera view full screen:
    picker.wantsFullScreenLayout = YES;
    // Insert the overlay:
    picker.cameraOverlayView = self.view;
      self.view.backgroundColor=[UIColor clearColor];

    // Show the picker:
    [self presentModalViewController:picker animated:YES];
}
    -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
        {
         UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
         UIImageWriteToSavedPhotosAlbum(image,self,  
                                           @selector(image:finishedSavingWithError:contextInfo:),
                                           nil);
        }
    - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
    {
        UIAlertView *alert;
        if (error)
            alert = [[UIAlertView alloc] initWithTitle:@"Error" 
                                               message:@"Unable to save image to Photo Album." 
                                              delegate:self cancelButtonTitle:@"Ok" 
                                     otherButtonTitles:nil];
        else 
            alert = [[UIAlertView alloc] initWithTitle:@"Success" 
                                               message:@"Image saved to Photo Album." 
                                              delegate:self cancelButtonTitle:@"Ok" 
                                     otherButtonTitles:nil];
        [alert show];
        [alert release];
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值