我有一个显示图像列表的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;
}
感谢您的帮助!
答案 0 :(得分:0)
如果它在app目录中,您可以直接读取该文件。这里有代码可以使用CGImageSource
获取元数据。
http://blog.depicus.com/index.php/2011/05/07/getting-exif-data-from-images-on-ios/
使用ALAssetLibrary
获得的照片库。最后,您将深入到ALAssetRepresentation
,它具有元数据属性。
对于相机图片,说实话,我并不完全确定如何在不首先将其写入磁盘(照片库或应用程序目录)的情况下这样做。