我可以从iPhone中的照片中获取图像的名称吗?

时间:2012-06-27 09:38:43

标签: iphone ios uiimage uiimagepickercontroller

我正在使用图片选择器从iPhone设备中的图库中选择图像。我必须使用库中的同名保存这些图像。我不想在选择图像后将其命名为不同。我在选择图像后尝试打印信息字典。它提供图像,网址和路径和类型..但如何获得图像的实际名称任何想法。以下是我在didFinish中获得的内容

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
NSLog(@"Selected image info: %@",info);

}

打印

Selected image info : (
        {
        UIImagePickerControllerMediaType = "public.image";
        UIImagePickerControllerOriginalImage = "<UIImage: 0x617d390>";
        UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=1000000089&ext=JPG";
        }
)

我的问题是从上面得到实际名称的任何方法。

3 个答案:

答案 0 :(得分:5)

使用AssetsLibrary框架,您可以从信息词典中获取referenceURL并获取资产。像这样:

NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];

__block NSString *fileName = nil;

ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
[library assetForURL:assetURL resultBlock:^(ALAsset *asset)  {
    fileName = asset.defaultRepresentation.fileName;
} failureBlock:nil];

答案 1 :(得分:4)

从图库中挑选的图片,没有'名字'。您永远不会为刚刚从相机拍摄的照片指定名称,即使您通过iTunes添加图像,原始文件名也会被删除,并替换为iTunes理解用于同步的文件名。

这些文件名不适合程序员访问,因为在将来的同步中它们可能被其他一些图像替换。

关于此问题的一个好方法是将当前日期指定为文件名,同时保存为从图库中挑选的图像。您可以将其保存在文档或库目录中,并使用映射PList文件将图像映射到其文件名。

或者,您也可以将唯一编号指定为文件名,并使用这些值访问图像。

虽然你提到你不想分配新的名字,但不幸的是,这是唯一的方法。

答案 2 :(得分:0)

我认为他们没有名字。我在我的应用程序中使用的是用NSDate(当前日期)作为名称保存它们。