0

画像のリストを表示するSplitviewControllerがあります。クリックするとメイン画面に表示され、その下にこの画像のメタデータを表示したいと思います。私の画像は、UIImagesとして保存する自作のクラスによって管理されています。Ressourceファイルとして埋め込まれ、経由でロードされた4つのサンプル画像を取得しました

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

ユーザーは、ライブラリまたはカメラのいずれかからimagePickerを介してこのリストに画像を追加するオプションがあります。

ここで、ユーザーがテーブルの行を選択したときに画像のメタデータにアクセスする方法が必要です。UIImagesにはメタデータが含まれていないことは知っていますが、基になるjpgにアクセスして、そこからメタデータを取得する方法はありますか?ここでの主な問題は、画像の3つの異なるソース(アプリdirectoy、フォトアルバム、カメラ)があることです。または、画像だけでなくメタデータや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

アプリディレクトリにある場合は、ファイルを直接読み取ることができます。を使用してメタデータを取得するコードがここにありますCGImageSource

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

を使用して取得するフォトライブラリALAssetLibraryALAssetRepresentation最終的には、メタデータプロパティを持つにドリルダウンします。

カメラの写真については、正直なところ、最初にディスク(フォトライブラリまたはアプリケーションディレクトリ)に書き込まずにそれを行う方法が完全にはわかりません。

于 2013-02-12T22:35:07.663 に答える