Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以从iPhone中的照片中获取图像的名称吗_Iphone_Ios_Uiimage_Uiimagepickercontroller - Fatal编程技术网

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

我可以从iPhone中的照片中获取图像的名称吗,iphone,ios,uiimage,uiimagepickercontroller,Iphone,Ios,Uiimage,Uiimagepickercontroller,我正在使用图像选择器从iPhone设备的图库中拾取图像。我必须以画廊中的相同名称保存这些图像。我不想在挑选图像后给它起不同的名字。我试着在选择图像后打印信息字典。它提供图像、url、路径和类型。。但是如何获得图像的实际名称呢。以下是我在完成时得到的 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSLog(@

我正在使用图像选择器从iPhone设备的图库中拾取图像。我必须以画廊中的相同名称保存这些图像。我不想在挑选图像后给它起不同的名字。我试着在选择图像后打印信息字典。它提供图像、url、路径和类型。。但是如何获得图像的实际名称呢。以下是我在完成时得到的

- (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";
        }
)
所选图像信息:(
{
UIImagePickerControllerMediaType=“public.image”;
UIImagePickerControllerOriginalImage=“”;
UIImagePickerControllerReferenceURL=“资产-library://asset/asset.JPG?id=1000000089&ext=JPG";
}
)

我的问题是如何从上面得到实际的名字。

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

使用AssetLibrary框架,您可以从信息字典中获取引用URL并获取资产。大概是这样的:

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];

从库中拾取的图像没有“名称”。您从不为刚从相机拍摄的图片指定名称,即使您通过iTunes添加图像,原始文件名也会被剥离并替换为iTunes能够理解的用于同步的文件名

这些文件名不是程序员可以访问的,因为在将来的同步中,它们可能会被其他一些图像所取代

一个很好的解决方法是将当前日期指定为文件名,同时保存到从库中拾取的图像。您可以将其保存在文档或库目录中,并使用映射PList文件将图像映射到其文件名

或者,您也可以指定唯一的数字作为文件名,并使用这些值访问图像


虽然您提到不想指定新名称,但不幸的是,这是唯一的办法。

谢谢,伙计。问题是,我不想挑选以前争吵过的图片。因此,如果不是名称,则必须是我猜要使用比较参数的id。我不确定这是否给出了图像的名称,并且仅在iOS 4.0和更高版本中才提供了更多的库。我的是iOS的较低版本:(.无论如何,谢谢你提供的信息。好吧,你在问题中没有提到,你接受的答案是错误的,图库中的文件确实有名称。哦,但是什么样的名称,如何知道这些文件的结构呢?IMG_0001.JPG,IMG_0002.JPG等等。兄弟..即使我已经用不同的名称保存了它。问题是第二次了当我拍摄图片时,我会比较它是否已经保存。尝试搜索元数据,但似乎你做不到:尝试这个答案:所以事情不可能:(有没有办法获取相集文件(图像/视频)的存储大小?)?