Sandeep Singh Sandeep Singh - 1 year ago 99
Objective-C Question

How can i get the name of image picked through photo library in iphone?

I am picking an image from photo library in iphone application. How will i retrieve the actual image name.

in .h class

UIImageView * imageView;

UIButton * choosePhotoBtn;

in .m class

-(IBAction) getPhoto:(id) sender
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
if((UIButton *) sender == choosePhotoBtn)
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
[picker dismissModalViewControllerAnimated:YES];
imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

How will i get the actual name of image ?

I m new in iphone. Please help me.

Thanks in advance.

Answer Source

import AssetsLibrary in your file:

#import <AssetsLibrary/AssetsLibrary.h>

And, in - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info


// get the ref url
NSURL *refURL = [info valueForKey:UIImagePickerControllerReferenceURL];

// define the block to call when we get the asset based on the url (below)
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *imageAsset)
    ALAssetRepresentation *imageRep = [imageAsset defaultRepresentation];
    NSLog(@"[imageRep filename] : %@", [imageRep filename]);

// get the asset library and fetch the asset based on the ref url (pass in block above)
ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
[assetslibrary assetForURL:refURL resultBlock:resultblock failureBlock:nil];

so you'll get the image name in log.

*don't forget to add existing framework: AssetsLibrary.framework Steps:

  1. In the project navigator, select your project
  2. Select your target
  3. Select the 'Build Phases' tab
  4. Open 'Link Binaries With Libraries' expander
  5. Click the '+' button
  6. Select your framework
  7. (optional) Drag and drop the added framework to the 'Frameworks' group

Source: & How to "add existing frameworks" in Xcode 4?

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download