12

iOS から組み込みの UIImagePicker を使用する場合、開発者はピッカーで使用されるサムネイル画像にアクセスできます。Filepicker が使用するサムネイルにアクセスしたり、Filepicker が使用する ALAsset ライブラリの URL にアクセスしたりすることはできますか?

4

1 に答える 1

1

これは私が行った方法ですが、ポスター画像を探して ALAssetsLibrary を反復処理するため、これに必要なフレームワークはメモリ集約的であることを警告する必要があります。これはバックグラウンド スレッドで行われるため、UI の変更はレンダリングのためにメイン スレッドに送信されます。

    self.assetsLibrary = [[ALAssetsLibrary alloc] init];

    NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupSavedPhotos | ALAssetsGroupPhotoStream;
    [self.assetsLibrary enumerateGroupsWithTypes:groupTypes
                                  usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                                      if (group.posterImage != nil) {
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              self.pictureLayer.contents = (__bridge_transfer id) CGImageCreateCopy(group.posterImage);
                                              [self.layer setNeedsDisplay];
                                              self.assetsLibrary = nil;
                                              *stop = YES;
                                          });
                                      }
                                  }
                                failureBlock:^(NSError *error) {
                                    self.assetsLibrary = nil;
                                    NSLog(@"AssetLib error:%@",error);
                                }];
于 2013-02-22T01:55:11.597 に答える