如何通过在iOS 7中提供图像名称从照片库中获取图像

时间:2014-02-01 09:30:28

标签: ios7

我想通过简单地提供图像名称或完整路径从iPhone模拟器中的照片库中获取图像。但我无法理解这样做。请让我从这里出来。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

要访问库目录,您需要使用 NSLibraryDirectory 而不是 NSDocumentDirectory ,然后使用以下代码。我认为它对你有用。

NSString* fileName = [NSString stringWithFormat:@"%@.png",patientlastName];
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES); 
NSString *path = [arrayPaths objectAtIndex:0];
NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];
UIImage *image1=[UIImage imageWithContentsOfFile:pdfFileName];
imageView.image=image1;

如果您想打开照片库并从那里获取图像,您必须使用UIImagePickerController并实现其委托方法,如下所示。

在.m文件中的类的@implementation之上,使用以下代码

#pragma mark - NON Rotation
@interface NonRotatingUIImagePickerController : UIImagePickerController

@end

@implementation NonRotatingUIImagePickerController

- (BOOL)shouldAutorotate
{
    return NO;
}

@end

然后在您的类.m文件的实现中使用下面的代码。

-(void)openPhotoLibrary {

    if ([UIImagePickerController isSourceTypeAvailable:
                         UIImagePickerControllerSourceTypeSavedPhotosAlbum])
                    {
                        UIImagePickerController *imagePicker =
                        [[NonRotatingUIImagePickerController alloc] init];
                        imagePicker.delegate = self;
                        imagePicker.sourceType =
                        UIImagePickerControllerSourceTypePhotoLibrary;
                        imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                                  (NSString *) kUTTypeImage,
                                                  nil];
                        imagePicker.allowsEditing = NO;
    }
}

UIImagePickerController委托

#pragma mark - ImagePicker Controller Delegate
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
 NSString *mediaType = [info
                           objectForKey:UIImagePickerControllerMediaType];
    [self dismissViewControllerAnimated:YES completion:nil];
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info
                          objectForKey:UIImagePickerControllerOriginalImage];

        imageView.image = image;
}
}

-(void)image:(UIImage *)image
finishedSavingWithError:(NSError *)error
 contextInfo:(void *)contextInfo
{
    if (error) {
//Right some error related code...
}
}

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

我认为这会对你有所帮助。