在 iphone 中创建自定义图片库

Posted

技术标签:

【中文标题】在 iphone 中创建自定义图片库【英文标题】:Create custom image gallery in iphone 【发布时间】:2013-02-11 04:20:44 【问题描述】:

我使用下面的代码从图库中选择照片或直接使用相机

- (void)actionSheet:(UIActionSheet *)actionSheet 
         clickedButtonAtIndex:(NSInteger)buttonIndex 

    UIImagePickerController *imagePickerController = 
      [[UIImagePickerController alloc]init];

    imagePickerController.delegate = self;
    if (buttonIndex == 0) 
        photoButtonNum=0;
        [self presentViewController:imagePickerController 
                           animated:YES 
                         completion:nil];
        imagePickerController.sourceType =  
          UIImagePickerControllerSourceTypePhotoLibrary;
     else if (buttonIndex == 1) 
        photoButtonNum=1;
        [self presentViewController:imagePickerController 
                           animated:YES 
                         completion:nil];
        imagePickerController.sourceType =  
          UIImagePickerControllerSourceTypeCamera;
    

我希望为我自己的应用程序创建一个自定义目录(文件夹),以将挑选的照片保存在 iPhone 中。我需要你的帮助

    为我自己的应用创建一个自定义目录 想要将选取的照片保存在该自定义目录中。

我是iPhone开发的新人,期待您的宝贵帮助。 提前致谢。

【问题讨论】:

【参考方案1】:

本站有助于您创建和保存Photo in your Directory

你也可以使用下面的代码。

- (void)imagePickerController:(UIImagePickerController *)picker 
          didFinishPickingMediaWithInfo:(NSDictionary *)info 
     UIImage *pickedImage = 
       [info objectForKey:UIImagePickerControllerOriginalImage];
     NSData *imageData = UIImagePNGRepresentation(pickedImage);

     NSString *documentsDirectory = 
       [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                            NSUserDomainMask, 
                                            YES) lastObject];
     NSString *path = [documentsDirectory 
       stringByAppendingPathComponent:@"imageName.png"];

    NSError * error = nil;
    [imageData writeToFile:storePath options:NSDataWritingAtomic error:&error];

    if (error != nil) 
      NSLog(@"Error: %@", error);
      return;
    

【讨论】:

这里的“storePath”是什么?它是“路径”本身吗?【参考方案2】:

ios 5 为您提供了使用ALAssetsLibrary 添加自定义相册的功能

这里有教程iOS5: Saving photos in custom photo album


编辑

万一链接失效

在 .h 文件中创建 ivar

ALAssetsLibrary* library;

然后在你的代码中可能在viewDidLoad

library = [[ALAssetsLibrary alloc] init];

然后在你的委托方法中

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

【讨论】:

@SamBudda 没关系,虽然我已经编辑了我的答案,以防链接变为非活动状态。 SO也不建议在答案中提供链接。每当我遇到只包含链接的答案(在我最初的 SO 职业中发布)时,我都会编辑它们

以上是关于在 iphone 中创建自定义图片库的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 中创建自定义 UITableView

如何在文件夹中创建自定义页面模板

无法使用自定义元数据保存图像

如何在 laravel 中创建自定义关系?

如何在 QML 中创建自定义对象?

在 Java 中创建自定义 JButton