0

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

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

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

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

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

谢谢你的帮助!

4

1 回答 1

0

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

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

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

对于相机图片,老实说,如果不先将其写入磁盘(照片库或应用程序目录),我并不完全确定如何做到这一点。

于 2013-02-12T22:35:07.663 回答