2010-02-17 65 views

回答

0

是的元数据没有在回调中填充(有些人还期待照片拍摄地点的地理标记/位置,但事实并非如此)。 事实上,你没有得到NSURL从Apple的角度听起来是合乎逻辑的:它们不会给你真正的文件的路径(比如file:// ....),因为这被认为是一部分实现,而不是公共API的一部分:从客户端角度来看,它看起来像是苹果不希望你知道图片在物理上存储在文件系统上的位置。

0

在iPad上运行iOS 3.2.1,似乎我的应用程序能够通过UIImagePickerControllerMediaURL获取图像文件的文件URL,即使文档似乎说它只适用于电影文件。

3

你可以得到一个NSURL路径到对象,但它不是你所期望的。我似乎也无法访问文件中的数据。

- (void)imagePickerController:(UIImagePickerController *)imagepicker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    // dismiss the image picker modal 
    [[imagepicker parentViewController] dismissModalViewControllerAnimated:YES]; 
    // grab the image url 
    NSURL *imageURL = [info valueForKey: UIImagePickerControllerReferenceURL]; 
    // get the data from the url 
    NSData *data = [NSData dataWithContentsOfURL:imageURL]; 
    // data is null at this point 
} 

NSURL对于jpeg文件看起来如下所示。

资产库://asset/asset.JPG ID = 1000000246 & EXT = JPG

5

我知道这个问题是非常古老的,但我确实设法从最近的谷歌搜索漫游它,所以认为我会抛出我认为实际上是其他答案似乎错过的问题的答案。

对于UIImagePickerControllerMediaURL,您仅获取NULL,因为它仅在拾取器中为Movie(kUTTypeMovie)媒体类型返回。如果你呈现一个默认的选择器,而无需指定其他媒体类型它的创作之后,那么文档似乎暗示你不会得到它:

UIImagePickerControllerMediaURL - Specifies the filesystem URL for the movie.

我可以确认至少在iOS 6中为图像(而不是电影)做的快速测试中不会返回它。

要访问返回的图像,实际上可以直接访问UIImagePickerControllerOriginalImage(如果不允许编辑,默认设置)或UIImagePickerControllerEditedImage(如果允许在拾取器中进行编辑)的键下的UIImage对象。原始图像始终可用,即使在拾取器中进行了编辑。你可以像处理程序中的其他UIImage一样对待这些UIImage。

相关问题