如何获取UIImagePickerController所选图像的原始文件名?

我已经实现了委托方法,并可以访问所选的UIImage,如下所示:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *pickedImage = [info valueForKey:UIImagePickerControllerOriginalImage]; 

我想保存到一个目录,但我需要一个文件名。 所以,而不是只是select一个随机的文件名,这将是有意义的select相同的文件名称的形象。

有没有办法从该信息字典中检索它?

您可以使用信息字典的UIImagePickerControllerReferenceURL值而不是UIImagePickerControllerOriginalImage 。 这应该给你的原始媒体项目的url。

这将返回一个NSURL对象,然后您可以使用它来构build您的新文件名。

  • 使用ALA资产库框架
  • 使用下面的代码

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; [library writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL *assetURL, NSError *error ) { [library assetForURL:assetURL resultBlock:^(ALAsset *asset ) { ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *imageAsset) { ALAssetRepresentation *imageRep = [imageAsset defaultRepresentation]; NSLog(@"reference image filename picking from camera: %@", [imageRep filename]); }; ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init]; [assetslibrary assetForURL:assetURL resultBlock:resultblock failureBlock:nil]; } failureBlock:^(NSError *error ) { NSLog(@"Error loading asset"); }]; }]; 
     imageView.image = [info objectForKey:UIImagePickerControllerEditedImage]; imageView.contentMode = UIViewContentModeScaleAspectFit;