如何获取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;