1

我正在尝试从相机获取图像文件名。我看过很多很多关于使用 UIImagePickerControllerReferenceURL 或 UIImagePickerControllerMediaURL 检索文件名的帖子,但这只会让你得到一个类似于://asset/asset.JPG?id=D1D715A8-6956-49FF-AF07-CE60FE93AE32&ext=JPG 的文件名。我相信这是因为图像尚未保存,因此像 img0001.jpg 这样的名称不可用。

有谁知道如何获取文件名?我在起诉我需要在 UIImageWriteToSavedPhotosAlbum 之后执行此操作,但我似乎无法弄清楚。

我已经看到这个问题被问了很多次,但似乎没有人“真正”回答它,他们只是总是从选择器而不是相机中选择的图像中给出文件名。

谢谢你的帮助

** 更新:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self.popoverController dismissPopoverAnimated:true];

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    [self dismissViewControllerAnimated:YES completion:nil];
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage])
    {
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
        imageView.image = image;
        if (newMedia)
        {
            UIImageWriteToSavedPhotosAlbum(image,
                                           self,
                                           @selector(image:finishedSavingWithError:contextInfo:),
                                           nil);

            NSURL *refURL = [info valueForKey:UIImagePickerControllerMediaURL];

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

我上面的代码,但是当 imageRep 文件名被记录时,它是空的。

4

0 回答 0