2012-01-17 5 views
1

私はこの文書を見つけられませんでしたが、前にやったことがありましたが、とにかくUIImagePickerで1つの画像を選択してユーザーのアルバムを読み込み、画像を選択した後で私は左にスクロールして、そのイメージの前後のすべてのイメージを見ることができますか?iOS用のユーザーの写真のすべての画像にアクセスするアプリを作成しますか?

私は複数の画像ピッカーを使用することができますが、それはすべてのユーザーの写真をインポートすることを含み、ユーザーが何百枚もの写真を持っている場合、これには多くの時間がかかります。私は実際の写真アプリと同様の機能を、性能とすべてを探しています。何か案は?

答えて

1

はい、できます。 ALAssetsLibraryのドキュメントを見てください。これにより、すべてのユーザーのイメージ(およびビデオ)ライブラリを列挙できます。これにより、が得られます。デフォルトのALAssetRepresentationを求めることができます。これは、順番に、CGImageを尋ねます。から、UIImageを作成することができます。

ライブラリとアセットの列挙は、ブロック単位で行われ、簡単にバックグラウンドで実行できます。

+0

これは、各写真をインポートして処理しなければならないという意味ではないでしょうか? – Snowman

+0

はい、いいえ。画像を一切取得せずにすべてを列挙することができます。これはかなり高速です。一度表示する必要があれば、 'ALAsset'にthumbnailImageを問い合わせることができます。これはキャッシュされ、比較的高速です。すべての列挙を行い、バックグラウンドでサムネイルを尋ねることもできます(UIViewはスレッドセーフではないため、メインスレッドで実際の表示を行うだけです)。ビューを表示してからサムネイルを1つずつ表示するようにしてください。 – fzwo

+0

もちろん、fullResolutionImageを取得することは常に遅くなるでしょう、その周りに道はありません。アイデアは、完全なライブラリをインポートするのではなく、独自の方法でライブラリをユーザに表示し、ユーザの選択に基づいて必要な部分だけをインポートするということです。 – fzwo

1

は、資産ライブラリを使用します。http://developer.apple.com/library/ios/#documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/Reference/Reference.html

ALAssetsLibraryのインスタンスを写真アプリケーションの制御下にあるビデオや 写真へのアクセスを提供します。

ライブラリには、Saved Photosアルバムに含まれているもの、iTunesで入手した 、および デバイスに直接インポートしたものが含まれます。これを使用してすべてのアセットグループのリストを取得し、 に保存した写真アルバムに画像と動画を保存します。

注:IOSでのみ利用可能4+

+0

私のアルバムに400以上の画像があるとしたら、各画像をインポートして保存する必要がありますか? – Snowman

関連する問題