2 ooomiao oOOMIAO 于 2013.05.13 15:16 提问

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

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];
}

2个回答

xinyoulingxi1_tong
xinyoulingxi1_tong   2013.05.13 15:45
已采纳

这样设置:

首先设置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];
    }
zhanglei5415
zhanglei5415   Rxr 2013.05.13 16:39

你贴出来的代码仅是调用Camera.并没有编写在“Use”这张图片后所执行的回调。
你还需要:
1.在弹出Camera的控制器的头文件.h中添加两个代理协议

@interface youViewController:UIViewController 
          <UINavigationControllerDelegate,UIImagePickerControllerDelegate>

2.设置UIImagePickerController的代理为当前控制器

picker.delegte = self ;

只有加上了这一句,回调函数才会被执行

3.在当前控制器中实现 UIImagePickerController的协议方法

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
        {
         UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
         UIImageWriteToSavedPhotosAlbum(image,self,  
                                           @selector(image:finishedSavingWithError:contextInfo:),
                                           nil); //保存图片到Album
        }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android 安卓保存图片到手机相册并且解决图片发黄问题
最近在研究怎么将安卓应用中的图片保存到手机相册。并且解决有一些手机保存图片到相册会出现发黄的问题。 如果要保存图片先在manifest中开启读写权限。 在SDCard中创建与删除文件权限 --> android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 往SDCard写入数据权限 --> android:name="and
iOS之保存图片到手机相册中
-(void)bnt{  //保存整个屏幕的图片     UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];     DebugLog(@"wid= %@",screenWindow);          UIGraphicsBeginImageContext(screenWind
Android 保存图片到手机相册
有一种很常见的需求,当保存图片的时候,客户需要在相册里面看到那张图片。有时候确实是保存成功了(通过IO流将图片写入了SDCard),但打开相册却看不到那张图片,需要在文件管理软件上才能找到那张图片,在网上找了许多文章,貌似都保存不到相册那里,这应该就是手机品牌的原因,有的品牌的手机能显示在相册里,有的品牌的手机却不能。解决这种问题,最简单粗暴的方法是,用那台手机拍一张照片,然后找到它,查看它的路径详
iOS 保存图片到手机相册
- (void)viewDidLoad  {      [super viewDidLoad];      // Do any additional setup after loading the view.              self.imageView = [[UIImageView alloc] initWithFrame:C
js保存图片到手机相册(ios与android通用)
1、将图片上传到后台,拷贝链接。2、Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。方法:createDownload: 新建下载任务详情链接:http://www.html5plus.org/...
android如何将生成的图片保存至手机相册并显示出来
生成图片后,保存到指定位置,或者直接保存到相册,但是保存后相册不能直接看到,这时就需要同时通知系统图库更新 //保存文件到指定路径 public void saveMyBitmap(Context context,Bitmap bitmap) { String sdCardDir=Environment.getExternalStorageDirectory()+"/DCI
如何运用html5 canvas将图片保存至手机本地的图库中?
想做一个移动端的简单画板,当图片绘制好了后,点击保存时该如何让图片存储在本地图库里? addEvent(save,'click',function(){ var dataImg = canvas.toDataURL('image/png'); var w=window.open('about:blank','image from canvas');
微信小程序保存图片到系统相册
function downloadImage(imageUrl) {    // 下载文件    wx.downloadFile({      url: imageUrl,      success: function (res) {        console.log(&quot;下载文件:success&quot;);        console.log(res);          // 保存图片到系统相册...
android 保存图片到手机相册,并通知相册刷新
保存图片到相册 项目中我们经常用到,将图片保存至手机相册,并通知相册及时刷新,展示图片。 只需将代码复制至图片工具类,直接使用即可;/** * 保存图片到图库 * @param context * @param bmp */ public static void saveImageToGallery(Context context, Bitmap
unity移动端截图后保存至相册
unity在移动端截图后会直接保存到系统的沙盒中,这个插件会通过调用ios和Android的原生api,将截图自动刷新到手机相册中。