Assets Library Framework Reference について.
アプリ内で保存する画像をアプリ独自のdocumentフォルダに保存して使うのではなくて、フォトライブラリに保存して利用できるようできないかなと思い、
フォトライブラリに関するフレームワークのAssets Libraryについて調べたことのメモ書きです。
(検証はしてないので、正確性は保証されません)

AssetsLibraryの概要

クラスの概要。 AppleのAssets Library Framework Referenceと一緒に見る

このスライドがよくまとまってる。 iOS4とiOS5で同じ要素でも結構違う所がある。

AssetsLibraryの使い方や注意点などについてまとまってる

全体的にまとまってるスライド

サムネイル

ALAssetからはthumbnail(75×75)、ALAssetsGroupからはposterImage(90×90)

サムネイルのサイズは比較的小さい

けど、かなり高速にサムネイルを取得できる。

UIImagePickerController からAssetsLibrary

didFinishPickingMediaWithInfoのUIImagePickerControllerReferenceURL からAssetURLが取得できるので、それを元にAssetsLibraryにアクセスすればいい。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
}

既に同じ画像があるか探索

画像を元にした探索は用意されてないので、画像のハッシュ値を保存しておいて、 それを元に探索する等(現実的な速度出せるのかな)

assert URL(assets-library://)があるなら、assetForURL を使って判定できる。

CoreDataとかにassert URLを保持しておいて、そのassert URLが変化したりするタイミングがどういうのかがまだよくわかってない。
アプリ内documentと違って、写真.appから削除できちゃったりするので、その辺と統合性をとったりするのも大変そう。

Post Navigation