来自Splitview Controller加载的图像的iOS元数据

时间:2013-02-12 22:10:39

标签: ios image metadata

我有一个显示图像列表的SplitviewController。单击一个时,它将显示在主屏幕上,我想在其下方显示该图像的元数据。 我的图像由自编的类管理,将它们存储为UIImages。 我有4个示例图片,它们只是作为Ressource文件嵌入并通过

加载
NSString* pathToImageFile = [[NSBundle mainBundle] pathForResource:imageName
                                                                ofType:@"jpg"];
UIImage* img = [UIImage imageWithContentsOfFile:pathToImageFile];

用户可以选择通过imagePicker将图片添加到此列表中,或者从图书馆或相机中添加。

现在我需要一种方法来在用户选择表格中的行时访问图像的元数据。我知道UIImages没有携带任何元数据,但有没有办法访问底层的jpg并从那里检索元数据?这里的主要问题是我有三种不同的图像来源(app directoy,相册,相机)。 或者我是否需要重写我的图像存储类,它必须跟踪我的元数据或我的URL以及图像? 以下是我的didSelectRow方法,我想添加一个方法来检索所选图像的元数据。

- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     UIImage *img = [[[ImageStore sharedStore] getAllImages] objectAtIndex:[indexPath row]];
     self.detailViewController.detailItem = img;
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果它在app目录中,您可以直接读取该文件。这里有代码可以使用CGImageSource获取元数据。

http://blog.depicus.com/index.php/2011/05/07/getting-exif-data-from-images-on-ios/

使用ALAssetLibrary获得的照片库。最后,您将深入到ALAssetRepresentation,它具有元数据属性。

对于相机图片,说实话,我并不完全确定如何在不首先将其写入磁盘(照片库或应用程序目录)的情况下这样做。