Ios 如何将相机中的图像保存到iPhone gallery中的特定文件夹?

Ios 如何将相机中的图像保存到iPhone gallery中的特定文件夹?,ios,iphone,camera,uiimagepickercontroller,Ios,Iphone,Camera,Uiimagepickercontroller,嘿,我是iPhone新手,最近我一直在尝试制作一款应用程序。基本上,我想做的是,如果用户将从相机捕获任何图像,那么它应该保存在设备库中。我知道如何在gallery中保存照片,这对我来说很有用,但我在将所有捕获的图像保存到设备gallery中的特定文件夹(如新相册)时遇到了问题。我希望用户能够拍摄多张照片,然后将照片从特定文件夹复制到图库 这是我的密码: - (void)imagePickerController:(UIImagePickerController *)picker didFinis

嘿,我是iPhone新手,最近我一直在尝试制作一款应用程序。基本上,我想做的是,如果用户将从相机捕获任何图像,那么它应该保存在设备库中。我知道如何在gallery中保存照片,这对我来说很有用,但我在将所有捕获的图像保存到设备gallery中的特定文件夹(如新相册)时遇到了问题。我希望用户能够拍摄多张照片,然后将照片从特定文件夹复制到图库

这是我的密码:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType];

    if([mediaType isEqualToString:(NSString*)kUTTypeImage]) {
        UIImage *photoTaken = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

        self.imageView.image = photoTaken;

        //Save Photo to library only if it wasnt already saved i.e. its just been taken
        if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
            UIImageWriteToSavedPhotosAlbum(photoTaken, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
        }
    }

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
    UIAlertView *alert;
    if (error) {
        alert = [[UIAlertView alloc] initWithTitle:@"Error!"
                                           message:[error localizedDescription]
                                          delegate:nil
                                 cancelButtonTitle:@"OK"
                                 otherButtonTitles:nil];
        [alert show];
    }
}
我尝试了以下代码,但我不知道它将图像保存到iPhone设备中的应用程序资源的何处:

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

    NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"EMS_FOLDER"];

    NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"Files"];
任何来源或参考链接是感激的。
谢谢你的帮助

您可以使用AssetLibrary,这将解决您的问题

- (IBAction)takePhoto
{
    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.editing = YES;
    imagePickerController.delegate = (id)self;

    [self presentModalViewController:imagePickerController animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [self.library saveImage:image toAlbum:@"Touch Code Magazine" withCompletionBlock:^(NSError *error) {
        if (error!=nil) {
            NSLog(@"Big error: %@", [error description]);
        }
    }];

    [picker dismissModalViewControllerAnimated:NO];
}
这里已经解释过了,这是一个很好的教程


可能是@DesdenovaThanks的副本,它正在另一个文件夹中保存,我们可以在主相册文件夹中创建子文件夹吗?我不知道主相册文件夹是什么,但您可以创建任意多的相册。@DesdenovaThanks,我想问一下,假设我在iPhone gallery中创建了一个名为的相册文件夹“我的应用程序图像”,所以我想知道是否可以在“我的应用程序图像”相册中创建子文件夹。这样用户就可以轻松区分所有图像。不,对不起,没有子相册。@StarkThanks,正如与Desnova讨论的,它将所有图像保存在名为“Touch Code Magazine”的特定文件夹中但我想知道是否有可能在gallery的主文件夹“Touch Code Magazine”中创建子文件夹。