Подтвердить что ты не робот

Миниатюра от filepicker на iOS

При использовании встроенного UIImagePicker от iOS разработчик имеет доступ к уменьшенному изображению, используемому в сборщике. Возможно ли получить доступ к миниатюре, используемой Filepicker, или иным образом получить доступ к URL-адресу библиотеки ALAsset, используемому Filepicker?

4b9b3361

Ответ 1

Это, как я это сделал, но я должен предупредить вас, что это медленно (ish), и рамки, необходимые для этого, интенсивно занимаются памятью, так как он выполняет итерацию по ALAssetsLibrary, ища постеры. Это в фоновом потоке, поэтому изменения пользовательского интерфейса отправляются в основной поток для рендеринга.

    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);
                                }];