3

我正在从 iPhone 相机保存图像并管理委托方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

在这里我需要知道:

[info objectForKey:UIImagePickerControllerReferenceURL]

但如果我只是拍了一张照片,它总是为零,如果与零不同,从相机胶卷中加载一张照片。这是为什么?

4

1 回答 1

10

如果您捕获视频,媒体将保存在设备的存储中,您可以访问其 URL。如果您捕获图像,媒体将保存到设备的内存中,您可以访问其原始数据。

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

    // An image
    if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.image"])
        UIImage *image=info[UIImagePickerControllerOriginalImage];

    // A video
    else
        NSURL *url=info[UIImagePickerControllerMediaURL]];
}

编辑:您问为什么图像的 URL 为零。如您所见,捕获的图像永远不会保存在设备的存储中。将图片保存在内存中的一个优点是您可以在将其存储在设备上或通过网络发送之前对其进行处理。

于 2012-10-28T20:39:31.590 回答